home *** CD-ROM | disk | FTP | other *** search
/ Aminet 30 / Aminet 30 (1999)(Schatztruhe)[!][Apr 1999].iso / Aminet / dev / lang / SmallEiffel.lha / SmallEiffel / bin_c / pretty11.c < prev    next >
C/C++ Source or Header  |  1998-12-22  |  119KB  |  6,432 lines

  1. /*
  2. -- ANSI C code generated by :
  3. -- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.79)      --
  4. -- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE --
  5. -- Dominique COLNET and Suzanne COLLIN -    colnet@loria.fr     --
  6. --                 http://www.loria.fr/SmallEiffel              --
  7. */
  8. #include "pretty.h"
  9. /*No:E_DEBUG.compound*/
  10. T0*oBC11run_control=NULL;
  11. /*No:E_DEBUG.start_position*/
  12.  
  13.  
  14. T0* r204add_comment(T204* C,T0* a1){
  15. T0* R=NULL;
  16. /*[IF*/
  17. if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r32count(((T32*)((((T64*)a1))->_list/*4*/)))/*)*/)==(0))){
  18. R=(T0*)C;
  19. }
  20.  else {/*AT*//*[IF*/
  21. if((/*(IRF4.6count*/r32count(((T32*)((((T64*)a1))->_list/*4*/)))/*)*/)==(1)){
  22. R=(T0*)C;
  23. }
  24. else{
  25. {T209*n=malloc(sizeof(*n));
  26. *n=M209;
  27. r209make(n,(T0*)C,a1);
  28. R=(T0*)n;
  29. }
  30. }
  31. /*FI]*/
  32. }
  33. /*FI]*/
  34. return R;
  35. }
  36.  
  37.  
  38. T0* r204to_runnable(T204* C,T0* a1){
  39. T0* R=NULL;
  40. /*[IF*/
  41. if(((C)->_current_type/*16*/)==((void*)(NULL))){
  42. C->_current_type=a1;
  43. /*[IF*/
  44. if(r54debug_check((T54*)(oBC11run_control))){
  45. /*[IF*/
  46. if(((C)->_compound/*12*/)!=((void*)(NULL))){
  47. C->_compound=r200to_runnable((T200*)((C)->_compound/*12*/),a1);
  48. }
  49. /*FI]*/
  50. }
  51. /*FI]*/
  52. R=(T0*)C;
  53. }
  54. else{
  55. {T204*n=malloc(sizeof(*n));
  56. *n=M204;
  57. r204make(n,(C)->_start_position/*4*/,(C)->_list/*8*/,(C)->_compound/*12*/);
  58. R=(T0*)n;
  59. }
  60. R=r204to_runnable(((T204*)R),a1);
  61. }
  62. /*FI]*/
  63. return R;
  64. }
  65. /*No:E_DEBUG.current_type*/
  66. /*No:E_DEBUG.end_mark_comment*/
  67.  
  68.  
  69. void r204make(T204* C,T0* a1,T0* a2,T0* a3){
  70. C->_start_position=a1;
  71. C->_list=a2;
  72. C->_compound=a3;
  73. }
  74.  
  75.  
  76. void r204pretty_print(T204* C){
  77. T2 _i=0;
  78. r310keyword((T310*)(oBC11fmt),((T0*)ms204_2670a));
  79. r310level_incr((T310*)(oBC11fmt));
  80. /*[IF*/
  81. if(((C)->_list/*8*/)!=((void*)(NULL))){
  82. r310put_character((T310*)(oBC11fmt),'\50');
  83. _i=((T205*)((C)->_list/*8*/))->_lower/*16*/;
  84. while (!((_i)>(((T205*)((C)->_list/*8*/))->_upper/*12*/))) {
  85. r154pretty_print((T154*)(r205item((T205*)((C)->_list/*8*/),_i)));
  86. _i=(_i)+(1);
  87. /*[IF*/
  88. if((_i)<=(((T205*)((C)->_list/*8*/))->_upper/*12*/)){
  89. r310put_character((T310*)(oBC11fmt),'\54');
  90. }
  91. /*FI]*/
  92. }
  93. r310put_character((T310*)(oBC11fmt),'\51');
  94. }
  95. /*FI]*/
  96. r310level_decr((T310*)(oBC11fmt));
  97. /*[IF*/
  98. if(((C)->_compound/*12*/)!=((void*)(NULL))){
  99. r200pretty_print((T200*)((C)->_compound/*12*/));
  100. }
  101. /*FI]*/
  102. r310indent((T310*)(oBC11fmt));
  103. r310keyword((T310*)(oBC11fmt),((T0*)ms204_1520));
  104. /*[IF*/
  105. if(r310print_end_debug((T310*)(oBC11fmt))){
  106. r310put_end((T310*)(oBC11fmt),((T0*)ms204_2670));
  107. }
  108. /*FI]*/
  109. }
  110. /*No:E_DEBUG.list*/
  111. /*No:CST_ATT_INTEGER.base_class*/
  112. /*No:CST_ATT_INTEGER.value_mem*/
  113.  
  114.  
  115. T0* r197start_position(T197* C){
  116. T0* R=NULL;
  117. R=X65start_position(/*(IRF4.6first_name*/r67item(((T67*)((C)->_names/*8*/)),1)/*)*/);
  118. return R;
  119. }
  120.  
  121.  
  122. T6 r197is_merge_with(T197* C,T0* a1,T0* a2){
  123. T6 R=0;
  124. R=1;
  125. /*[IF*/
  126. if(((C)->_result_type/*20*/)!=((void*)(X75result_type(a1)))){
  127. /*[IF*/
  128. if((((C)->_result_type/*20*/)==((void*)(NULL)))||((X75result_type(a1))==((void*)(NULL)))){
  129. R=0;
  130. }
  131. /*FI]*/
  132. }
  133. /*FI]*/
  134. /*[IF*/
  135. if((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X75arguments(a1)))){
  136. /*[IF*/
  137. {/*AT*/R=0;
  138. }
  139. /*FI]*/
  140. }
  141. /*FI]*/
  142. /*[IF*/
  143. if(R){
  144. /*[IF*/
  145. if(((C)->_result_type/*20*/)!=((void*)(NULL))){
  146. R=X62is_a_in((C)->_result_type/*20*/,X75result_type(a1),a2);
  147. }
  148. /*FI]*/
  149. /*[IF*/
  150. if((R)&&((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(NULL)))){
  151. R=r171is_a_in((T171*)(/*(IRF4.1arguments*/NULL/*)*/),X75arguments(a1),a2);
  152. }
  153. /*FI]*/
  154. /*[IF*/
  155. if(!(R)){
  156. R=1;
  157. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC37explanation))))->_count)=(0);
  158. /*]*/
  159. /*[IRF3.3clear*/((((T38*)((T38*)(oBC37positions))))->_upper)=(-(1));
  160. /*]*/
  161. /*]*/
  162. /*[IF*/
  163. if(((C)->_result_type/*20*/)!=((void*)(NULL))){
  164. R=X62is_a_in(X75result_type(a1),(C)->_result_type/*20*/,a2);
  165. }
  166. /*FI]*/
  167. /*[IF*/
  168. if((R)&&((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(NULL)))){
  169. R=r171is_a_in((T171*)(X75arguments(a1)),/*(IRF4.1arguments*/NULL/*)*/,a2);
  170. }
  171. /*FI]*/
  172. }
  173. /*FI]*/
  174. }
  175. /*FI]*/
  176. /*[IF*/
  177. if(R){
  178. r197merge_header_comments(C,a1);
  179. }
  180. /*FI]*/
  181. return R;
  182. }
  183. /*No:CST_ATT_INTEGER.first_name*/
  184. /*No:CST_ATT_INTEGER.em1*/
  185. /*No:CST_ATT_INTEGER.header_comment*/
  186.  
  187.  
  188. void r197pretty_print_profile(T197* C){
  189. r197pretty_print_names(C);
  190. /*[IRF3.3set_indent_level*/((((T310*)((T310*)(oBC11fmt))))->_indent_level)=(2);
  191. /*]*/
  192. /*[IRF3.1pretty_print_arguments*//*]*/
  193. /*[IRF3.3set_indent_level*/((((T310*)((T310*)(oBC11fmt))))->_indent_level)=(3);
  194. /*]*/
  195. /*[IF*/
  196. if(((C)->_result_type/*20*/)!=((void*)(NULL))){
  197. r310put_string((T310*)(oBC11fmt),((T0*)ms75_186));
  198. X62pretty_print((C)->_result_type/*20*/);
  199. }
  200. /*FI]*/
  201. }
  202. /*No:CST_ATT_INTEGER.names*/
  203. /*No:CST_ATT_INTEGER.result_type*/
  204. /*No:CST_ATT_INTEGER.code_require*/
  205. /*No:CST_ATT_INTEGER.make_e_feature*/
  206.  
  207.  
  208. void r197add_into(T197* C,T0* a1){
  209. T0* _fn=NULL;
  210. T2 _i=0;
  211. C->_base_class=r39base_class((T39*)(X65start_position(r67item((T67*)((C)->_names/*8*/),1))));
  212. _i=1;
  213. while (!((_i)>(r67count((T67*)((C)->_names/*8*/))))) {
  214. _fn=r67item((T67*)((C)->_names/*8*/),_i);
  215. /*[IF*/
  216. if(r74has(((T74*)a1),X65to_key(_fn))){
  217. _fn=/*X75first_name*/((T0*)/*(IRF4.6first_name*/r67item(((T67*)(((T183*)(r74at(((T74*)a1),X65to_key(_fn))))->_names/*8*/)),1)/*)*/);
  218. r37add_position(X65start_position(_fn));
  219. r37add_position(X65start_position(r67item((T67*)((C)->_names/*8*/),_i)));
  220. r37error((T37*)(oBC11eh),((T0*)ms75_41905));
  221. /*[IRF3.6append*/{T0* b1=X65to_string(_fn);
  222. r7append((T7*)(oBC37explanation),b1);
  223. }/*]*/
  224. r37error((T37*)(oBC11eh),((T0*)ms12_47));
  225. }
  226. else{
  227. r74put(((T74*)a1),(T0*)C,X65to_key(_fn));
  228. }
  229. /*FI]*/
  230. _i=(_i)+(1);
  231. }
  232. }
  233.  
  234.  
  235. T6 r197can_hide(T197* C,T0* a1,T0* a2){
  236. T6 R=0;
  237. /*[IF*/
  238. if(((C)->_result_type/*20*/)!=((void*)(X75result_type(a1)))){
  239. /*[IF*/
  240. if((((C)->_result_type/*20*/)==((void*)(NULL)))||((X75result_type(a1))==((void*)(NULL)))){
  241. r37add_position(X75start_position(a1));
  242. r197error(r197start_position(C),((T0*)ms75_64647));
  243. }
  244. /*FI]*/
  245. }
  246. /*FI]*/
  247. /*[IF*/
  248. if((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X75arguments(a1)))){
  249. /*[IF*/
  250. {/*AT*/r37add_position(X75start_position(a1));
  251. r197error(r197start_position(C),((T0*)ms75_83182));
  252. }
  253. /*FI]*/
  254. }
  255. /*FI]*/
  256. /*[IF*/
  257. if((/*(IRF4.9nb_errors*/((T37*)(oBC11eh))->_nb_errors/*4*//*)*/)==(0)){
  258. /*[IF*/
  259. if(((C)->_result_type/*20*/)!=((void*)(NULL))){
  260. /*[IF*/
  261. if(!(X62is_a_in((C)->_result_type/*20*/,X75result_type(a1),a2))){
  262. /*[IRF3.6append*/{T0* b1=((T0*)ms75_54285);
  263. r7append((T7*)(oBC37explanation),b1);
  264. }/*]*/
  265. /*[IRF3.6append*/{T0* b1=X62run_time_mark((((T313*)a2))->_current_type/*0*/);
  266. r7append((T7*)(oBC37explanation),b1);
  267. }/*]*/
  268. r37error((T37*)(oBC11eh),((T0*)ms12_47));
  269. }
  270. /*FI]*/
  271. }
  272. /*FI]*/
  273. }
  274. /*FI]*/
  275. /*[IF*/
  276. if((/*(IRF4.9nb_errors*/((T37*)(oBC11eh))->_nb_errors/*4*//*)*/)==(0)){
  277. /*[IF*/
  278. /*AF*//*AE*/
  279. /*FI]*/
  280. }
  281. /*FI]*/
  282. R=(/*(IRF4.9nb_errors*/((T37*)(oBC11eh))->_nb_errors/*4*//*)*/)==(0);
  283. /*[IF*/
  284. if(R){
  285. r197merge_header_comments(C,a1);
  286. }
  287. /*FI]*/
  288. return R;
  289. }
  290. /*No:CST_ATT_INTEGER.ensure_assertion*/
  291.  
  292.  
  293. T0* r197try_to_undefine(T197* C,T0* a1,T0* a2){
  294. T0* R=NULL;
  295. T0* _fn2=NULL;
  296. r37add_position(X65start_position(a1));
  297. _fn2=r67feature_name((T67*)((C)->_names/*8*/),X65to_key(a1));
  298. /*[IF*/
  299. if((_fn2)!=((void*)(NULL))){
  300. X65undefine_in(_fn2,a2);
  301. }
  302. /*FI]*/
  303. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC37explanation))))->_count)=(0);
  304. /*]*/
  305. /*[IRF3.3clear*/((((T38*)((T38*)(oBC37positions))))->_upper)=(-(1));
  306. /*]*/
  307. /*]*/
  308. R=r197try_to_undefine_aux(C,a1,a2);
  309. /*[IF*/
  310. if((R)!=((void*)(NULL))){
  311. /*X269set_clients*//*[IRF3.3set_clients*/((((T272*)(((T272*)R))))->_clients)=((C)->_clients/*16*/);
  312. /*]*/
  313. r197merge_header_comments(C,R);
  314. }
  315. else{
  316. r41fatal_undefine(((T41*)a2),a1);
  317. }
  318. /*FI]*/
  319. return R;
  320. }
  321. /*No:CST_ATT_INTEGER.is_deferred*/
  322. T0*oBC75assertion_collector=NULL;
  323. /*No:CST_ATT_INTEGER.set_clients*/
  324. /*No:CST_ATT_INTEGER.value*/
  325. T0*oBC11small_eiffel=NULL;
  326. /*No:CST_ATT_INTEGER.nb_errors*/
  327.  
  328.  
  329. T0* r197to_run_feature(T197* C,T0* a1,T0* a2){
  330. T0* R=NULL;
  331. T0* _rc=NULL;
  332. _rc=X62run_class(a1);
  333. R=r313at(((T313*)_rc),a2);
  334. if(NULL!=(R))switch(((T0*)R)->id) {
  335. case 325: 
  336. break;
  337. default:
  338. R=NULL;
  339. };/*[IF*/
  340. if((R)==((void*)(NULL))){
  341. {T325*n=malloc(sizeof(*n));
  342. *n=M325;
  343. r325make(n,a1,a2,(T0*)C);
  344. R=(T0*)n;
  345. }
  346. }
  347. /*FI]*/
  348. return R;
  349. }
  350.  
  351.  
  352. void r197merge_header_comments(T197* C,T0* a1){
  353. /*[IF*/
  354. if(((T42*)(oBC11small_eiffel))->_short_flag/*0*/){
  355. /*[IF*/
  356. if(((C)->_header_comment/*12*/)==((void*)(NULL))){
  357. C->_header_comment=/*X75header_comment*/((T0*)(((T183*)a1))->_header_comment/*12*/);
  358. }
  359.  else if((/*X75header_comment*/((T0*)(((T183*)a1))->_header_comment/*12*/))==((void*)(NULL))){
  360. X75set_header_comment(a1,(C)->_header_comment/*12*/);
  361. }
  362. /*FI]*/
  363. }
  364. /*FI]*/
  365. }
  366. /*No:CST_ATT_INTEGER.arguments*/
  367. T0*oBC75header_comment_memory=NULL;
  368. /*No:CST_ATT_INTEGER.require_assertion*/
  369. T0*oBC75require_collector=NULL;
  370. /*No:CST_ATT_INTEGER.pretty_print_arguments*/
  371.  
  372.  
  373. T0* r197try_to_undefine_aux(T197* C,T0* a1,T0* a2){
  374. T0* R=NULL;
  375. r37add_position(r197start_position(C));
  376. r197error(X65start_position(a1),((T0*)ms185_99414));
  377. r41fatal_undefine(((T41*)a2),a1);
  378. return R;
  379. }
  380. /*No:CST_ATT_INTEGER.fz_dot*/
  381.  
  382.  
  383. void r197error(T0* a1,T0* a2){
  384. r37add_position(a1);
  385. r37error((T37*)(oBC11eh),a2);
  386. }
  387.  
  388.  
  389. void r197make(T197* C,T0* a1,T0* a2,T0* a3){
  390. /*[IRF3.3make_e_feature*/((((T197*)(C)))->_names)=(a1);
  391. /*]*/
  392. C->_result_type=a2;
  393. C->_value_mem=a3;
  394. }
  395.  
  396.  
  397. void r197pretty_print_names(T197* C){
  398. T2 _i=0;
  399. _i=1;
  400. X65declaration_pretty_print(r67item((T67*)((C)->_names/*8*/),_i));
  401. _i=(_i)+(1);
  402. while (!((_i)>(r67count((T67*)((C)->_names/*8*/))))) {
  403. r310put_string((T310*)(oBC11fmt),((T0*)ms75_158));
  404. X65declaration_pretty_print(r67item((T67*)((C)->_names/*8*/),_i));
  405. _i=(_i)+(1);
  406. }
  407. }
  408.  
  409.  
  410. void r197pretty_print(T197* C){
  411. r197pretty_print_profile(C);
  412. r197pretty_tail(C);
  413. r310put_character((T310*)(oBC11fmt),'\73');
  414. /*[IF*/
  415. if(((C)->_header_comment/*12*/)!=((void*)(NULL))){
  416. /*[IRF3.3set_indent_level*/((((T310*)((T310*)(oBC11fmt))))->_indent_level)=(2);
  417. /*]*/
  418. r310indent((T310*)(oBC11fmt));
  419. /*[IRF3.3set_indent_level*/((((T310*)((T310*)(oBC11fmt))))->_indent_level)=(1);
  420. /*]*/
  421. r64pretty_print((T64*)((C)->_header_comment/*12*/));
  422. }
  423. else{
  424. /*[IRF3.3set_indent_level*/((((T310*)((T310*)(oBC11fmt))))->_indent_level)=(1);
  425. /*]*/
  426. }
  427. /*FI]*/
  428. }
  429.  
  430.  
  431. void r197collect_for(T2 a1){
  432. T0* _er=NULL;
  433. /*[IF*/
  434. if((a1)==(1)){
  435. _er=/*(IRF4.1require_assertion*/NULL/*)*/;
  436. /*[IF*/
  437. if((_er)!=((void*)(NULL))){
  438. /*[IF*/
  439. if(!(r332fast_has((T332*)(oBC75require_collector),_er))){
  440. r332add_last((T332*)(oBC75require_collector),_er);
  441. }
  442. /*FI]*/
  443. }
  444. /*FI]*/
  445. }
  446. else{
  447. /*[IF*/
  448. /*AF*//*AE*/
  449. /*FI]*/
  450. }
  451. /*FI]*/
  452. }
  453. /*No:CST_ATT_INTEGER.set_header_comment*/
  454.  
  455.  
  456. void r197pretty_tail(T197* C){
  457. r310put_string((T310*)(oBC11fmt),((T0*)ms184_1176));
  458. /*[IRF3.6pretty_print*/{T158* C1=(T158*)(/*(IRF4.3value*/(C)->_value_mem/*24*//*)*/);
  459. r310put_string((T310*)(oBC11fmt),/*(IRF4.6to_string*/r2to_string(((T2)((C1)->_value/*8*/)))/*)*/);
  460. }/*]*/
  461. }
  462. /*No:CST_ATT_INTEGER.clients*/
  463. /*No:EIFFEL_PARSER.last_instruction*/
  464. /*No:EIFFEL_PARSER.fz_frozen*/
  465.  
  466.  
  467. T0* r51a_alias(T51* C){
  468. T0* R=NULL;
  469. /*[IF*/
  470. if(r51a_keyword(C,((T0*)ms12_2685))){
  471. /*[IF*/
  472. if(r51a_manifest_string(C)){
  473. R=((T154*)((C)->_last_manifest_string/*145*/))->_to_string/*8*/;
  474. }
  475. else{
  476. r51fcp(C,((T0*)ms51_63264));
  477. }
  478. /*FI]*/
  479. }
  480. /*FI]*/
  481. return R;
  482. }
  483.  
  484.  
  485. T6 r51a_type_formal_generic(T51* C){
  486. T6 R=0;
  487. T2 _rank=0;
  488. T0* _cn=NULL;
  489. T0* _fga=NULL;
  490. /*[IF*/
  491. if(((C)->_formal_generic_list/*37*/)!=((void*)(NULL))){
  492. _rank=1;
  493. while (!((R)||((_rank)>(/*(IRF4.6count*/(((T264*)(((T76*)((C)->_formal_generic_list/*37*/))->_list/*4*/)))->_upper/*8*//*)*/)))) {
  494. _fga=/*(IRF4.6item*/r264item(((T264*)(((T76*)((C)->_formal_generic_list/*37*/))->_list/*4*/)),_rank)/*)*/;
  495. /*[IF*/
  496. if(r51a_keyword(C,((T49*)((((T263*)_fga))->_name/*0*/))->_to_string/*0*/)){
  497. {T49*n=malloc(sizeof(*n));
  498. *n=M49;
  499. r49make(n,((T49*)((((T263*)_fga))->_name/*0*/))->_to_string/*0*/,r51pos((C)->_start_line/*169*/,(C)->_start_column/*165*/));
  500. _cn=(T0*)n;
  501. }
  502. {T265*n=malloc(sizeof(*n));
  503. *n=M265;
  504. r265make(n,_cn,_rank);
  505. C->_last_type_formal_generic=(T0*)n;
  506. }
  507. R=1;
  508. }
  509. /*FI]*/
  510. _rank=(_rank)+(1);
  511. }
  512. }
  513. /*FI]*/
  514. return R;
  515. }
  516.  
  517.  
  518. void r51err_exp(T0* a1,T0* a2){
  519. T0* _msg=NULL;
  520. {T7*n=malloc(sizeof(*n));
  521. *n=M7;
  522. r7make(n,0);
  523. _msg=(T0*)n;
  524. }
  525. r7append(((T7*)_msg),((T0*)ms51_48949));
  526. r7append(((T7*)_msg),a2);
  527. r7append(((T7*)_msg),((T0*)ms51_10120));
  528. r37add_position(a1);
  529. /*[IRF3.6fatal_error*/{T0* b1=_msg;
  530. r37fatal_error((T37*)(oBC11eh),b1);
  531. }/*]*/
  532. }
  533. /*No:EIFFEL_PARSER.fz_then*/
  534. /*No:EIFFEL_PARSER.formal_generic_list*/
  535. /*No:EIFFEL_PARSER.fz_indexing*/
  536.  
  537.  
  538. T6 r51a_rename_pair(T51* C){
  539. T6 R=0;
  540. T0* _rename_pair=NULL;
  541. T0* _name1=NULL;
  542. /*[IF*/
  543. if(r51a_feature_name(C)){
  544. _name1=(C)->_last_feature_name/*105*/;
  545. /*[IF*/
  546. if(r51a_keyword(C,((T0*)ms12_430))){
  547. /*[IF*/
  548. if(r51a_feature_name(C)){
  549. R=1;
  550. {T70*n=malloc(sizeof(*n));
  551. *n=M70;
  552. r70make(n,_name1,(C)->_last_feature_name/*105*/);
  553. _rename_pair=(T0*)n;
  554. }
  555. r60add_rename((T60*)((C)->_last_parent/*149*/),_rename_pair);
  556. }
  557. else{
  558. r51fcp(C,((T0*)ms51_121210));
  559. }
  560. /*FI]*/
  561. }
  562. else{
  563. /*[IRF3.6go_back*/{T51* C1=C;
  564. T0* b1=X65start_position(_name1);
  565. r51go_back_at(C1,/*(IRF4.6line*/((((T39*)b1))->_mem_line_column/*4*/)/(1000)/*)*/,/*(IRF4.6column*/((((T39*)b1))->_mem_line_column/*4*/)%(1000)/*)*/);
  566. }/*]*/
  567. }
  568. /*FI]*/
  569. }
  570. /*FI]*/
  571. return R;
  572. }
  573. /*No:EIFFEL_PARSER.last_feature_name*/
  574. /*No:EIFFEL_PARSER.fz_when*/
  575. /*No:EIFFEL_PARSER.last_parent*/
  576.  
  577.  
  578. T0* r51last_result(T51* C){
  579. T0* R=NULL;
  580. T0* _sp=NULL;
  581. _sp=r92start_position((T92*)(oBC51tmp_name));
  582. /*[IF*/
  583. if((C)->_inside_function/*29*/){
  584. /*[IF*/
  585. if((C)->_inside_once_function/*33*/){
  586. {T138*n=malloc(sizeof(*n));
  587. *n=M138;
  588. /*[IRF3.3make*/((((T138*)(n)))->_start_position)=(_sp);
  589. /*]*/
  590. R=(T0*)n;
  591. }
  592. }
  593. else{
  594. {T139*n=malloc(sizeof(*n));
  595. *n=M139;
  596. /*[IRF3.3make*/((((T139*)(n)))->_start_position)=(_sp);
  597. /*]*/
  598. R=(T0*)n;
  599. }
  600. }
  601. /*FI]*/
  602. }
  603. else{
  604. r37add_position(_sp);
  605. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms51_116820);
  606. r37fatal_error((T37*)(oBC11eh),b1);
  607. }/*]*/
  608. }
  609. /*FI]*/
  610. return R;
  611. }
  612. /*No:EIFFEL_PARSER.us_integer*/
  613.  
  614.  
  615. void r51a_function_call(T51* C){
  616. T0* _implicit_current=NULL;
  617. T0* _sfn=NULL;
  618. _sfn=r92to_simple_feature_name((T92*)(oBC51tmp_name));
  619. {T177*n=malloc(sizeof(*n));
  620. *n=M177;
  621. /*[IRF3.3make*/((((T177*)(n)))->_start_position)=((((T131*)_sfn))->_start_position/*8*/);
  622. /*]*/
  623. _implicit_current=(T0*)n;
  624. }
  625. r51a_r10(C,0,_implicit_current,_sfn,r51a_actuals(C));
  626. }
  627.  
  628.  
  629. T6 r51a_real_constant(T51* C){
  630. T6 R=0;
  631. T2 _c=0;
  632. T2 _l=0;
  633. _l=(C)->_line/*16*/;
  634. _c=(C)->_column/*12*/;
  635. /*[IF*/
  636. if(r51skip1(C,'\53')){
  637. /*[IF*/
  638. if(r51a_real(C)){
  639. r39set_line_column((T39*)(((T157*)((C)->_last_real_constant/*153*/))->_start_position/*4*/),_l,_c);
  640. R=1;
  641. }
  642. else{
  643. r51go_back_at(C,_l,_c);
  644. }
  645. /*FI]*/
  646. }
  647.  else if(r51skip1(C,'\55')){
  648. /*[IF*/
  649. if(r51a_real(C)){
  650. r39set_line_column((T39*)(((T157*)((C)->_last_real_constant/*153*/))->_start_position/*4*/),_l,_c);
  651. /*[IRF3.5unary_minus*/r7add_first(((T7*)(((T157*)((C)->_last_real_constant/*153*/))->_to_string/*8*/)),'\55');
  652. /*]*/
  653. R=1;
  654. }
  655. else{
  656. r51go_back_at(C,_l,_c);
  657. }
  658. /*FI]*/
  659. }
  660.  else if(r51a_real(C)){
  661. R=1;
  662. }
  663. /*FI]*/
  664. return R;
  665. }
  666. /*No:EIFFEL_PARSER.fz_feature*/
  667.  
  668.  
  669. T6 r51a_assignment_or_call(T51* C){
  670. T6 R=0;
  671. /*[IF*/
  672. if((r51skip1(C,'\50'))&&(r51a_expression(C))){
  673. R=1;
  674. /*[IF*/
  675. if(r51skip1(C,'\51')){
  676. r51a_r10(C,1,(C)->_last_expression/*97*/,NULL,NULL);
  677. }
  678. else{
  679. r51fcp(C,((T0*)ms51_11245));
  680. }
  681. /*FI]*/
  682. }
  683.  else if(r51a_precursor(C,1)){
  684. R=1;
  685. }
  686.  else if(r51a_identifier(C)){
  687. R=1;
  688. /*[IF*/
  689. if(r51skip2(C,'\72','\75')){
  690. r51a_assignment_aux(C,1);
  691. }
  692.  else if(r51skip2(C,'\77','\75')){
  693. r51a_assignment_aux(C,0);
  694. }
  695.  else if((((r51a_current(C))||(r51a_result(C)))||(r51a_local_variable(C)))||(r51a_argument(C))){
  696. r51a_r10(C,1,(C)->_last_expression/*97*/,NULL,NULL);
  697. }
  698. else{
  699. r51a_procedure_call(C);
  700. }
  701. /*FI]*/
  702. }
  703. /*FI]*/
  704. return R;
  705. }
  706. /*No:EIFFEL_PARSER.fz_debug*/
  707. /*No:EIFFEL_PARSER.us_native_array*/
  708.  
  709.  
  710. T6 r51a_strip(T51* C){
  711. T6 R=0;
  712. T0* _sp=NULL;
  713. /*[IF*/
  714. if(r51a_keyword(C,((T0*)ms12_2885))){
  715. {T39*n=malloc(sizeof(*n));
  716. *n=M39;
  717. r39make(n,(C)->_start_line/*169*/,(C)->_start_column/*165*/);
  718. _sp=(T0*)n;
  719. }
  720. /*[IF*/
  721. if(r51skip1(C,'\50')){
  722. C->_ok=r51a_feature_name_list(C);
  723. {T130*n=malloc(sizeof(*n));
  724. *n=M130;
  725. r130make(n,_sp,(C)->_last_feature_name_list/*109*/);
  726. C->_last_expression=(T0*)n;
  727. }
  728. /*[IF*/
  729. if(!(r51skip1(C,'\51'))){
  730. r51fcp(C,((T0*)ms51_80379));
  731. }
  732. /*FI]*/
  733. R=1;
  734. }
  735. else{
  736. r51fcp(C,((T0*)ms51_65660));
  737. }
  738. /*FI]*/
  739. }
  740. /*FI]*/
  741. return R;
  742. }
  743. /*No:EIFFEL_PARSER.fz_loop*/
  744. T0*oBC51faof=NULL;
  745. /*No:EIFFEL_PARSER.us_pointer*/
  746.  
  747.  
  748. void r51a_indexing(T51* C){
  749. /*[IF*/
  750. if(r51a_keyword(C,((T0*)ms12_11000))){
  751. while (!(!(r51a_index_clause(C)))) {
  752. C->_ok=r51skip1(C,'\73');
  753. }
  754. }
  755. /*FI]*/
  756. }
  757. /*No:EIFFEL_PARSER.make*/
  758.  
  759.  
  760. T0* r51a_actuals(T51* C){
  761. T0* R=NULL;
  762. T0* _remainder=NULL;
  763. T0* _first_one=NULL;
  764. /*[IF*/
  765. if(r51skip1(C,'\50')){
  766. while (!(!(r51a_actual(C)))) {
  767. /*[IF*/
  768. if((_first_one)==((void*)(NULL))){
  769. _first_one=(C)->_last_expression/*97*/;
  770. }
  771. else{
  772. /*[IF*/
  773. if((_remainder)==((void*)(NULL))){
  774. {T134*n=malloc(sizeof(*n));
  775. *n=M134;
  776. r134with_capacity(n,4);
  777. _remainder=(T0*)n;
  778. }
  779. }
  780. /*FI]*/
  781. X134add_last(_remainder,(C)->_last_expression/*97*/);
  782. }
  783. /*FI]*/
  784. /*[IF*/
  785. if((!(r51skip1(C,'\54')))&&(((C)->_cc/*24*/)!=('\51'))){
  786. /*[IRF3.6wcp*/{T51* C1=C;
  787. T0* b1=((T0*)ms51_9410);
  788. r51warning(r51current_position(C1),b1);
  789. }/*]*/
  790. }
  791. /*FI]*/
  792. }
  793. /*[IF*/
  794. if((_first_one)==((void*)(NULL))){
  795. /*[IRF3.6wcp*/{T51* C1=C;
  796. T0* b1=((T0*)ms51_57660);
  797. r51warning(r51current_position(C1),b1);
  798. }/*]*/
  799. }
  800. else{
  801. {T132*n=malloc(sizeof(*n));
  802. *n=M132;
  803. r132make_n(n,_first_one,_remainder);
  804. R=(T0*)n;
  805. }
  806. }
  807. /*FI]*/
  808. /*[IF*/
  809. if(!(r51skip1(C,'\51'))){
  810. r51fcp(C,((T0*)ms51_65695));
  811. }
  812. /*FI]*/
  813. }
  814. /*FI]*/
  815. return R;
  816. }
  817.  
  818.  
  819. T0* r51a_clients(T51* C){
  820. T0* R=NULL;
  821. T2 _state=0;
  822. T0* _list=NULL;
  823. T0* _sp=NULL;
  824. /*[IF*/
  825. if(r51skip1(C,'\173')){
  826. {T39*n=malloc(sizeof(*n));
  827. *n=M39;
  828. r39make(n,(C)->_start_line/*169*/,(C)->_start_column/*165*/);
  829. _sp=(T0*)n;
  830. }
  831. while (!((_state)>(3))) {
  832. {int z1=_state;
  833.  
  834. if((0==z1)){
  835. /*[IF*/
  836. if(r51a_base_class_name(C)){
  837. {T179*n=malloc(sizeof(*n));
  838. *n=M179;
  839. /*[IRF3.3make_1*/((((T179*)(n)))->_first)=((C)->_last_class_name/*89*/);
  840. /*]*/
  841. _list=(T0*)n;
  842. }
  843. _state=2;
  844. }
  845.  else if(r51skip1(C,'\175')){
  846. _state=4;
  847. }
  848.  else if(((C)->_cc/*24*/)==('\54')){
  849. /*[IRF3.6wcp*/{T51* C1=C;
  850. T0* b1=((T0*)ms51_48195);
  851. r51warning(r51current_position(C1),b1);
  852. }/*]*/
  853. C->_ok=r51skip1(C,'\54');
  854. }
  855. else{
  856. _state=3;
  857. }
  858. /*FI]*/
  859. }
  860.  else 
  861. if((1==z1)){
  862. /*[IF*/
  863. if(r51a_base_class_name(C)){
  864. r179add_last(((T179*)_list),(C)->_last_class_name/*89*/);
  865. _state=2;
  866. }
  867.  else if(((C)->_cc/*24*/)==('\54')){
  868. /*[IRF3.6wcp*/{T51* C1=C;
  869. T0* b1=((T0*)ms51_48195);
  870. r51warning(r51current_position(C1),b1);
  871. }/*]*/
  872. C->_ok=r51skip1(C,'\54');
  873. }
  874.  else if(((C)->_cc/*24*/)==('\175')){
  875. /*[IRF3.6wcp*/{T51* C1=C;
  876. T0* b1=((T0*)ms51_26923);
  877. r51warning(r51current_position(C1),b1);
  878. }/*]*/
  879. C->_ok=r51skip1(C,'\175');
  880. _state=4;
  881. }
  882. else{
  883. _state=3;
  884. }
  885. /*FI]*/
  886. }
  887.  else 
  888. if((2==z1)){
  889. /*[IF*/
  890. if(r51skip1(C,'\54')){
  891. _state=1;
  892. }
  893.  else if(r51skip1(C,'\175')){
  894. _state=4;
  895. }
  896.  else if(r51a_base_class_name(C)){
  897. r51warning(((T49*)((C)->_last_class_name/*89*/))->_start_position/*4*/,((T0*)ms51_9410));
  898. r179add_last(((T179*)_list),(C)->_last_class_name/*89*/);
  899. }
  900. else{
  901. _state=3;
  902. }
  903. /*FI]*/
  904. }
  905.  else{r51fcp(C,((T0*)ms51_20247));
  906. _state=4;
  907. }}
  908. }
  909. {T83*n=malloc(sizeof(*n));
  910. *n=M83;
  911. r83make(n,_sp,_list);
  912. R=(T0*)n;
  913. }
  914. }
  915. else{
  916. {T83*n=malloc(sizeof(*n));
  917. *n=M83;
  918. /*[IRF3.1omitted*//*]*/
  919. R=(T0*)n;
  920. }
  921. }
  922. /*FI]*/
  923. return R;
  924. }
  925. T0*oBC11echo=NULL;
  926. /*No:EIFFEL_PARSER.us_implies*/
  927. T0*oBC51tmp_name=NULL;
  928. /*No:EIFFEL_PARSER.fz_c_inlinewithcurrent*/
  929.  
  930.  
  931. void r51a_feature_clause(T51* C){
  932. T0* _comment=NULL;
  933. T0* _clients=NULL;
  934. T0* _feature_clause=NULL;
  935. _clients=r51a_clients(C);
  936. _comment=r51get_comments(C);
  937. /*[IRF3.3clear*/((((T81*)((T81*)(oBC51faof))))->_upper)=(-(1));
  938. /*]*/
  939. while (!(!(r51a_feature_declaration(C)))) {
  940. C->_ok=r51skip1(C,'\73');
  941. /*[IF*/
  942. if(((C)->_last_feature_declaration/*101*/)!=((void*)(NULL))){
  943. r81add_last((T81*)(oBC51faof),(C)->_last_feature_declaration/*101*/);
  944. X75set_header_comment((C)->_last_feature_declaration/*101*/,r51get_comments(C));
  945. }
  946. /*FI]*/
  947. }
  948. /*[IF*/
  949. if(!(r81empty((T81*)(oBC51faof)))){
  950. {T78*n=malloc(sizeof(*n));
  951. *n=M78;
  952. r78make(n,_clients,_comment,r81twin((T81*)(oBC51faof)));
  953. _feature_clause=(T0*)n;
  954. }
  955. r41add_feature_clause((T41*)((C)->_last_base_class/*65*/),_feature_clause);
  956. }
  957.  else if((_comment)!=((void*)(NULL))){
  958. {T78*n=malloc(sizeof(*n));
  959. *n=M78;
  960. r78make(n,_clients,_comment,NULL);
  961. _feature_clause=(T0*)n;
  962. }
  963. r41add_feature_clause((T41*)((C)->_last_base_class/*65*/),_feature_clause);
  964. }
  965. /*FI]*/
  966. C->_last_keyword=NULL;
  967. }
  968. /*No:EIFFEL_PARSER.us_precursor*/
  969. /*No:EIFFEL_PARSER.fz_inherit*/
  970. /*No:EIFFEL_PARSER.fz_variant*/
  971. /*No:EIFFEL_PARSER.fz_inspect*/
  972. /*No:EIFFEL_PARSER.last_character_constant*/
  973. /*No:EIFFEL_PARSER.last_class_type*/
  974. /*No:EIFFEL_PARSER.last_class_name*/
  975. /*No:EIFFEL_PARSER.last_ascii_code*/
  976. /*No:EIFFEL_PARSER.line*/
  977. /*No:EIFFEL_PARSER.fz_require*/
  978. /*No:EIFFEL_PARSER.fz_invariant*/
  979.  
  980.  
  981. T6 r51a_integer(T51* C){
  982. T6 R=0;
  983. T2 _value=0;
  984. T2 _state=0;
  985. /*[IF*/
  986. if(r3is_digit((C)->_cc/*24*/)){
  987. R=1;
  988. C->_start_line=(C)->_line/*16*/;
  989. C->_start_column=(C)->_column/*12*/;
  990. _value=r3value((C)->_cc/*24*/);
  991. while (!((_state)>(7))) {
  992. r51next_char(C);
  993. {int z1=_state;
  994.  
  995. if((0==z1)){
  996. {int z2=(C)->_cc/*24*/;
  997.  
  998. if(((48<=z2)&&(z2<=57))){
  999. _value=((_value)*(10))+(r3value((C)->_cc/*24*/));
  1000. _state=1;
  1001. }
  1002.  else 
  1003. if((95==z2)){
  1004. _state=4;
  1005. }
  1006.  else{_state=8;
  1007. }}
  1008. }
  1009.  else 
  1010. if((1==z1)){
  1011. {int z2=(C)->_cc/*24*/;
  1012.  
  1013. if(((48<=z2)&&(z2<=57))){
  1014. _value=((_value)*(10))+(r3value((C)->_cc/*24*/));
  1015. _state=2;
  1016. }
  1017.  else 
  1018. if((95==z2)){
  1019. _state=4;
  1020. }
  1021.  else{_state=8;
  1022. }}
  1023. }
  1024.  else 
  1025. if((2==z1)){
  1026. {int z2=(C)->_cc/*24*/;
  1027.  
  1028. if(((48<=z2)&&(z2<=57))){
  1029. _value=((_value)*(10))+(r3value((C)->_cc/*24*/));
  1030. _state=3;
  1031. }
  1032.  else 
  1033. if((95==z2)){
  1034. _state=4;
  1035. }
  1036.  else{_state=8;
  1037. }}
  1038. }
  1039.  else 
  1040. if((3==z1)){
  1041. {int z2=(C)->_cc/*24*/;
  1042.  
  1043. if(((48<=z2)&&(z2<=57))){
  1044. _value=((_value)*(10))+(r3value((C)->_cc/*24*/));
  1045. }
  1046.  else 
  1047. if((95==z2)){
  1048. r51fcp(C,((T0*)ms51_98851));
  1049. }
  1050.  else{_state=8;
  1051. }}
  1052. }
  1053.  else 
  1054. if((4==z1)){
  1055. {int z2=(C)->_cc/*24*/;
  1056.  
  1057. if(((48<=z2)&&(z2<=57))){
  1058. _value=((_value)*(10))+(r3value((C)->_cc/*24*/));
  1059. _state=5;
  1060. }
  1061.  else{r51fcp(C,((T0*)ms51_98851));
  1062. }}
  1063. }
  1064.  else 
  1065. if((5==z1)){
  1066. {int z2=(C)->_cc/*24*/;
  1067.  
  1068. if(((48<=z2)&&(z2<=57))){
  1069. _value=((_value)*(10))+(r3value((C)->_cc/*24*/));
  1070. _state=6;
  1071. }
  1072.  else{r51fcp(C,((T0*)ms51_98851));
  1073. }}
  1074. }
  1075.  else 
  1076. if((6==z1)){
  1077. {int z2=(C)->_cc/*24*/;
  1078.  
  1079. if(((48<=z2)&&(z2<=57))){
  1080. _value=((_value)*(10))+(r3value((C)->_cc/*24*/));
  1081. _state=7;
  1082. }
  1083.  else{r51fcp(C,((T0*)ms51_98851));
  1084. }}
  1085. }
  1086.  else {{int z2=(C)->_cc/*24*/;
  1087.  
  1088. if(((48<=z2)&&(z2<=57))){
  1089. r51fcp(C,((T0*)ms51_98851));
  1090. }
  1091.  else 
  1092. if((95==z2)){
  1093. _state=4;
  1094. }
  1095.  else{_state=8;
  1096. }}
  1097. }}
  1098. }
  1099. /*[IF*/
  1100. if(r3is_letter((C)->_cc/*24*/)){
  1101. r51fcp(C,((T0*)ms51_31689));
  1102. }
  1103. /*FI]*/
  1104. r51skip_comments(C);
  1105. {T158*n=malloc(sizeof(*n));
  1106. *n=M158;
  1107. r158make(n,_value,r51pos((C)->_start_line/*169*/,(C)->_start_column/*165*/));
  1108. C->_last_integer_constant=(T0*)n;
  1109. }
  1110. }
  1111. /*FI]*/
  1112. return R;
  1113. }
  1114.  
  1115.  
  1116. T0* r51current_position(T51* C){
  1117. T0* R=NULL;
  1118. {T39*n=malloc(sizeof(*n));
  1119. *n=M39;
  1120. r39make(n,(C)->_line/*16*/,(C)->_column/*12*/);
  1121. R=(T0*)n;
  1122. }
  1123. return R;
  1124. }
  1125. T0*oBC51forbidden_class=NULL;
  1126.  
  1127.  
  1128. T6 r51a_manifest_string(T51* C){
  1129. T6 R=0;
  1130. T2 _state=0;
  1131. /*[IF*/
  1132. if(((C)->_cc/*24*/)==('\42')){
  1133. R=1;
  1134. {T154*n=malloc(sizeof(*n));
  1135. *n=M154;
  1136. r154make(n,r51pos((C)->_line/*16*/,(C)->_column/*12*/));
  1137. C->_last_manifest_string=(T0*)n;
  1138. }
  1139. while (!((_state)>(3))) {
  1140. r51next_char(C);
  1141. {int z1=_state;
  1142.  
  1143. if((0==z1)){
  1144. {int z2=(C)->_cc/*24*/;
  1145.  
  1146. if((10==z2)){
  1147. r51fcp(C,((T0*)ms51_91143));
  1148. }
  1149.  else 
  1150. if((34==z2)){
  1151. _state=4;
  1152. }
  1153.  else 
  1154. if((37==z2)){
  1155. _state=1;
  1156. }
  1157.  else{/*[IRF3.5add*/r7extend(((T7*)(((T154*)((C)->_last_manifest_string/*145*/))->_to_string/*8*/)),(C)->_cc/*24*/);
  1158. /*]*/
  1159. }}
  1160. }
  1161.  else 
  1162. if((1==z1)){
  1163. _state=0;
  1164. {int z2=(C)->_cc/*24*/;
  1165.  
  1166. if((10==z2)){
  1167. _state=3;
  1168. }
  1169.  else 
  1170. if((65==z2)){
  1171. r154add_percent((T154*)((C)->_last_manifest_string/*145*/),'\100');
  1172. }
  1173.  else 
  1174. if((66==z2)){
  1175. r154add_percent((T154*)((C)->_last_manifest_string/*145*/),'\10');
  1176. }
  1177.  else 
  1178. if((67==z2)){
  1179. r154add_percent((T154*)((C)->_last_manifest_string/*145*/),'\136');
  1180. }
  1181.  else 
  1182. if((68==z2)){
  1183. r154add_percent((T154*)((C)->_last_manifest_string/*145*/),'\44');
  1184. }
  1185.  else 
  1186. if((70==z2)){
  1187. r154add_percent((T154*)((C)->_last_manifest_string/*145*/),'\14');
  1188. }
  1189.  else 
  1190. if((72==z2)){
  1191. r154add_percent((T154*)((C)->_last_manifest_string/*145*/),'\134');
  1192. }
  1193.  else 
  1194. if((76==z2)){
  1195. r154add_percent((T154*)((C)->_last_manifest_string/*145*/),'\176');
  1196. }
  1197.  else 
  1198. if((78==z2)){
  1199. r154add_percent((T154*)((C)->_last_manifest_string/*145*/),'\n');
  1200. }
  1201.  else 
  1202. if((81==z2)){
  1203. r154add_percent((T154*)((C)->_last_manifest_string/*145*/),'\140');
  1204. }
  1205.  else 
  1206. if((82==z2)){
  1207. r154add_percent((T154*)((C)->_last_manifest_string/*145*/),'\15');
  1208. }
  1209.  else 
  1210. if((83==z2)){
  1211. r154add_percent((T154*)((C)->_last_manifest_string/*145*/),'\43');
  1212. }
  1213.  else 
  1214. if((84==z2)){
  1215. r154add_percent((T154*)((C)->_last_manifest_string/*145*/),'\11');
  1216. }
  1217.  else 
  1218. if((85==z2)){
  1219. r154add_percent((T154*)((C)->_last_manifest_string/*145*/),'\0');
  1220. }
  1221.  else 
  1222. if((86==z2)){
  1223. r154add_percent((T154*)((C)->_last_manifest_string/*145*/),'\174');
  1224. }
  1225.  else 
  1226. if((37==z2)){
  1227. r154add_percent((T154*)((C)->_last_manifest_string/*145*/),'\45');
  1228. }
  1229.  else 
  1230. if((39==z2)){
  1231. r154add_percent((T154*)((C)->_last_manifest_string/*145*/),'\47');
  1232. }
  1233.  else 
  1234. if((34==z2)){
  1235. r154add_percent((T154*)((C)->_last_manifest_string/*145*/),'\42');
  1236. }
  1237.  else 
  1238. if((40==z2)){
  1239. r154add_percent((T154*)((C)->_last_manifest_string/*145*/),'\133');
  1240. }
  1241.  else 
  1242. if((41==z2)){
  1243. r154add_percent((T154*)((C)->_last_manifest_string/*145*/),'\135');
  1244. }
  1245.  else 
  1246. if((60==z2)){
  1247. r154add_percent((T154*)((C)->_last_manifest_string/*145*/),'\173');
  1248. }
  1249.  else 
  1250. if((62==z2)){
  1251. r154add_percent((T154*)((C)->_last_manifest_string/*145*/),'\175');
  1252. }
  1253.  else 
  1254. if((47==z2)){
  1255. r51a_ascii_code(C);
  1256. r154add_ascii((T154*)((C)->_last_manifest_string/*145*/),((T3)((C)->_last_ascii_code/*61*/)));
  1257. }
  1258.  else 
  1259. if((9==z2)||(32==z2)){
  1260. _state=2;
  1261. }
  1262.  else{r51fcp(C,((T0*)ms51_45084a));
  1263. _state=0;
  1264. }}
  1265. }
  1266.  else 
  1267. if((2==z1)){
  1268. {int z2=(C)->_cc/*24*/;
  1269.  
  1270. if((10==z2)){
  1271. _state=3;
  1272. }
  1273.  else 
  1274. if((9==z2)||(32==z2)){
  1275. }
  1276.  else{r51fcp(C,((T0*)ms51_192660));
  1277. }}
  1278. }
  1279.  else{{int z2=(C)->_cc/*24*/;
  1280.  
  1281. if((9==z2)||(32==z2)){
  1282. }
  1283.  else 
  1284. if((37==z2)){
  1285. r154break_line((T154*)((C)->_last_manifest_string/*145*/));
  1286. _state=0;
  1287. }
  1288.  else 
  1289. if((10==z2)){
  1290. r51fcp(C,((T0*)ms51_91143));
  1291. _state=0;
  1292. }
  1293.  else{r51fcp(C,((T0*)ms51_204786));
  1294. _state=0;
  1295. }}
  1296. }}
  1297. }
  1298. r51next_char(C);
  1299. r51skip_comments(C);
  1300. }
  1301. /*FI]*/
  1302. return R;
  1303. }
  1304. /*No:EIFFEL_PARSER.fz_jvm_invokestatic*/
  1305.  
  1306.  
  1307. void r51a_class_declaration(T51* C){
  1308. T6 _drop_comments_save=0;
  1309. T0* _al=NULL;
  1310. T0* _hc=NULL;
  1311. T0* _sp=NULL;
  1312. r51a_indexing(C);
  1313. /*[IF*/
  1314. if(r51a_keyword(C,((T0*)ms12_10664))){
  1315. r41set_is_deferred((T41*)((C)->_last_base_class/*65*/));
  1316. }
  1317. /*FI]*/
  1318. /*[IF*/
  1319. if(r51a_keyword(C,((T0*)ms12_10840))){
  1320. r41set_is_expanded((T41*)((C)->_last_base_class/*65*/));
  1321. /*[IF*/
  1322. if(r51a_keyword(C,((T0*)ms12_10664))){
  1323. r41set_is_deferred((T41*)((C)->_last_base_class/*65*/));
  1324. }
  1325. /*FI]*/
  1326. }
  1327. /*FI]*/
  1328. /*[IRF3.3set_heading_comment1*/((((T41*)((T41*)((C)->_last_base_class/*65*/))))->_heading_comment1)=(r51get_comments(C));
  1329. /*]*/
  1330. /*[IF*/
  1331. if(!(r51a_keyword(C,((T0*)ms12_2745)))){
  1332. r51fcp(C,((T0*)ms51_42300));
  1333. }
  1334. /*FI]*/
  1335. r51a_base_class_name1(C);
  1336. r51a_formal_generic_list(C);
  1337. /*[IF*/
  1338. if(r51a_keyword(C,((T0*)ms12_10928))){
  1339. /*[IF*/
  1340. if(r51a_manifest_string(C)){
  1341. /*[IRF3.3set_obsolete_type_string*/((((T41*)((T41*)((C)->_last_base_class/*65*/))))->_obsolete_type_string)=((C)->_last_manifest_string/*145*/);
  1342. /*]*/
  1343. }
  1344. else{
  1345. r51fcp(C,((T0*)ms51_125396));
  1346. }
  1347. /*FI]*/
  1348. }
  1349. /*FI]*/
  1350. /*[IRF3.3set_heading_comment2*/((((T41*)((T41*)((C)->_last_base_class/*65*/))))->_heading_comment2)=(r51get_comments(C));
  1351. /*]*/
  1352. /*[IF*/
  1353. if(r51a_keyword(C,((T0*)ms12_9527))){
  1354. r51a_parent_list(C,r51pos((C)->_start_line/*169*/,(C)->_start_column/*165*/),r51get_comments(C));
  1355. }
  1356. /*FI]*/
  1357. while (!(!(r51a_keyword(C,((T0*)ms12_11376))))) {
  1358. r51a_creation_clause(C,r51pos((C)->_start_line/*169*/,(C)->_start_column/*165*/));
  1359. }
  1360. while (!(!(r51a_keyword(C,((T0*)ms12_8785))))) {
  1361. r51a_feature_clause(C);
  1362. }
  1363. _drop_comments_save=(C)->_drop_comments/*4*/;
  1364. C->_drop_comments=0;
  1365. /*[IF*/
  1366. if(r51a_keyword(C,((T0*)ms12_14427))){
  1367. {T39*n=malloc(sizeof(*n));
  1368. *n=M39;
  1369. r39make(n,(C)->_start_line/*169*/,(C)->_start_column/*165*/);
  1370. _sp=(T0*)n;
  1371. }
  1372. _hc=r51get_comments(C);
  1373. _al=r51a_assertion(C);
  1374. r41set_invariant((T41*)((C)->_last_base_class/*65*/),_sp,_hc,_al);
  1375. }
  1376. /*FI]*/
  1377. /*[IF*/
  1378. if((r51a_keyword(C,((T0*)ms12_951)))||(((C)->_last_keyword/*113*/)==((void*)(((T0*)ms12_951))))){
  1379. /*[IF*/
  1380. if(((C)->_cc/*24*/)==('\73')){
  1381. /*[IRF3.6wcp*/{T51* C1=C;
  1382. T0* b1=((T0*)ms12_41475);
  1383. r51warning(r51current_position(C1),b1);
  1384. }/*]*/
  1385. C->_ok=r51skip1(C,'\73');
  1386. }
  1387. /*FI]*/
  1388. /*[IRF3.3set_end_comment*/((((T41*)((T41*)((C)->_last_base_class/*65*/))))->_end_comment)=(r51get_comments(C));
  1389. /*]*/
  1390. /*[IF*/
  1391. if(((C)->_cc/*24*/)!=('\0')){
  1392. r51fcp(C,((T0*)ms51_29463));
  1393. }
  1394. /*FI]*/
  1395. }
  1396. else{
  1397. r51fcp(C,((T0*)ms51_117540));
  1398. }
  1399. /*FI]*/
  1400. C->_drop_comments=_drop_comments_save;
  1401. }
  1402. /*No:EIFFEL_PARSER.last_base_class*/
  1403.  
  1404.  
  1405. void r51a_after_a_dot(T51* C,T6 a1,T0* a2){
  1406. T0* _eal=NULL;
  1407. T0* _sfn=NULL;
  1408. /*[IF*/
  1409. if(r51a_identifier(C)){
  1410. /*[IF*/
  1411. if(((r51a_result(C))||(r51a_void(C)))||(r51a_current(C))){
  1412. r37add_position(X89start_position((C)->_last_expression/*97*/));
  1413. r37error((T37*)(oBC11eh),((T0*)ms51_83714));
  1414. }
  1415. /*FI]*/
  1416. _sfn=r92to_simple_feature_name((T92*)(oBC51tmp_name));
  1417. _eal=r51a_actuals(C);
  1418. r51a_r10(C,a1,a2,_sfn,_eal);
  1419. }
  1420. else{
  1421. r51fcp(C,((T0*)ms51_63584));
  1422. }
  1423. /*FI]*/
  1424. }
  1425. /*No:EIFFEL_PARSER.nb_errors*/
  1426.  
  1427.  
  1428. T6 r51a_actual(T51* C){
  1429. T6 R=0;
  1430. /*[IF*/
  1431. if(r51skip1(C,'\44')){
  1432. /*[IF*/
  1433. if(r51a_identifier(C)){
  1434. /*[IF*/
  1435. if(((r51a_result(C))||(r51a_void(C)))||(r51a_current(C))){
  1436. r37add_position(X89start_position((C)->_last_expression/*97*/));
  1437. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms51_98482);
  1438. r37fatal_error((T37*)(oBC11eh),b1);
  1439. }/*]*/
  1440. }
  1441. else{
  1442. {T143*n=malloc(sizeof(*n));
  1443. *n=M143;
  1444. /*[IRF3.3make*/((((T143*)(n)))->_feature_name)=(r92to_simple_feature_name((T92*)(oBC51tmp_name)));
  1445. /*]*/
  1446. C->_last_expression=(T0*)n;
  1447. }
  1448. R=1;
  1449. }
  1450. /*FI]*/
  1451. }
  1452. else{
  1453. r51fcp(C,((T0*)ms51_98482));
  1454. }
  1455. /*FI]*/
  1456. }
  1457.  else if(r51a_expression(C)){
  1458. R=1;
  1459. }
  1460. /*FI]*/
  1461. return R;
  1462. }
  1463.  
  1464.  
  1465. T6 r51a_infix(T51* C){
  1466. T6 R=0;
  1467. T0* _sp=NULL;
  1468. /*[IF*/
  1469. if(r51a_keyword(C,((T0*)ms12_2785))){
  1470. R=1;
  1471. {T39*n=malloc(sizeof(*n));
  1472. *n=M39;
  1473. r39make(n,(C)->_start_line/*169*/,(C)->_start_column/*165*/);
  1474. _sp=(T0*)n;
  1475. }
  1476. /*[IF*/
  1477. if(((C)->_cc/*24*/)==('\42')){
  1478. r51next_char(C);
  1479. }
  1480. else{
  1481. /*[IRF3.6wcp*/{T51* C1=C;
  1482. T0* b1=((T0*)ms51_85196);
  1483. r51warning(r51current_position(C1),b1);
  1484. }/*]*/
  1485. }
  1486. /*FI]*/
  1487. /*[IF*/
  1488. if(r51a_binary(C,_sp)){
  1489. C->_last_infix=(C)->_last_binary/*73*/;
  1490. }
  1491.  else if(r51a_free_operator(C)){
  1492. C->_last_infix=r92to_infix_name(_sp);
  1493. }
  1494. else{
  1495. r51fcp(C,((T0*)ms51_53911));
  1496. }
  1497. /*FI]*/
  1498. /*[IF*/
  1499. if(!(r51skip1(C,'\42'))){
  1500. /*[IRF3.6wcp*/{T51* C1=C;
  1501. T0* b1=((T0*)ms51_38352a);
  1502. r51warning(r51current_position(C1),b1);
  1503. }/*]*/
  1504. }
  1505. /*FI]*/
  1506. }
  1507. /*FI]*/
  1508. return R;
  1509. }
  1510. /*No:EIFFEL_PARSER.us_plus*/
  1511. T0*oBC11parser_buffer=NULL;
  1512.  
  1513.  
  1514. void r51a_parent_list(T51* C,T0* a1,T0* a2){
  1515. T0* _list=NULL;
  1516. while (!(!(r51a_parent(C)))) {
  1517. /*[IF*/
  1518. if((_list)==((void*)(NULL))){
  1519. _list=se_ma61(1,
  1520. (C)->_last_parent/*149*/);
  1521. }
  1522. else{
  1523. r61add_last(((T61*)_list),(C)->_last_parent/*149*/);
  1524. }
  1525. /*FI]*/
  1526. C->_ok=r51skip1(C,'\73');
  1527. /*[IRF3.3set_comment*/((((T60*)((T60*)((C)->_last_parent/*149*/))))->_comment)=(r51get_comments(C));
  1528. /*]*/
  1529. }
  1530. /*[IF*/
  1531. if(((a2)!=((void*)(NULL)))||((_list)!=((void*)(NULL)))){
  1532. /*[IF*/
  1533. if((_list)==((void*)(NULL))){
  1534. /*[IF*/
  1535. if((((T41*)((C)->_last_base_class/*65*/))->_heading_comment2/*32*/)==((void*)(NULL))){
  1536. /*[IRF3.3set_heading_comment2*/((((T41*)((T41*)((C)->_last_base_class/*65*/))))->_heading_comment2)=(a2);
  1537. /*]*/
  1538. }
  1539. else{
  1540. r64append((T64*)(((T41*)((C)->_last_base_class/*65*/))->_heading_comment2/*32*/),a2);
  1541. }
  1542. /*FI]*/
  1543. }
  1544. else{
  1545. r41set_parent_list((T41*)((C)->_last_base_class/*65*/),a1,a2,_list);
  1546. }
  1547. /*FI]*/
  1548. }
  1549. /*FI]*/
  1550. }
  1551. /*No:EIFFEL_PARSER.fz_check*/
  1552. /*No:EIFFEL_PARSER.us_muls*/
  1553. /*No:EIFFEL_PARSER.cc*/
  1554.  
  1555.  
  1556. void r51prev_char(T51* C){
  1557. /*[IF*/
  1558. if(((C)->_column/*12*/)>(1)){
  1559. C->_column=((C)->_column/*12*/)-(1);
  1560. C->_cc=/*(IRF4.6item*/(((T7*)((C)->_current_line/*20*/))->_storage/*0*/)[((C)->_column/*12*/)-(1)]/*)*/;
  1561. }
  1562. else{
  1563. /*[IF*/
  1564. if(((C)->_line/*16*/)>(1)){
  1565. C->_line=((C)->_line/*16*/)-(1);
  1566. C->_current_line=r52item((C)->_line/*16*/);
  1567. C->_column=(((T7*)((C)->_current_line/*20*/))->_count/*4*/)+(1);
  1568. C->_cc='\n';
  1569. }
  1570. else{
  1571. C->_column=0;
  1572. C->_cc='\0';
  1573. }
  1574. /*FI]*/
  1575. }
  1576. /*FI]*/
  1577. }
  1578.  
  1579.  
  1580. T6 r51a_inspect(T51* C){
  1581. T6 R=0;
  1582. T0* _ec=NULL;
  1583. T0* _i=NULL;
  1584. T0* _spec=NULL;
  1585. T0* _sp=NULL;
  1586. /*[IF*/
  1587. if(r51a_keyword(C,((T0*)ms12_9590))){
  1588. R=1;
  1589. {T39*n=malloc(sizeof(*n));
  1590. *n=M39;
  1591. r39make(n,(C)->_start_line/*169*/,(C)->_start_column/*165*/);
  1592. _sp=(T0*)n;
  1593. }
  1594. /*[IF*/
  1595. if(r51a_expression(C)){
  1596. C->_last_expression=X89add_comment((C)->_last_expression/*97*/,r51get_comments(C));
  1597. }
  1598. else{
  1599. r51fcp(C,((T0*)ms51_82621));
  1600. }
  1601. /*FI]*/
  1602. {T216*n=malloc(sizeof(*n));
  1603. *n=M216;
  1604. r216make(n,_sp,(C)->_last_expression/*97*/);
  1605. _i=(T0*)n;
  1606. }
  1607. while (!(!(r51a_when_part(C,_i)))) {
  1608. }
  1609. /*[IF*/
  1610. if(r51a_keyword(C,((T0*)ms12_1740))){
  1611. {T39*n=malloc(sizeof(*n));
  1612. *n=M39;
  1613. r39make(n,(C)->_start_line/*169*/,(C)->_start_column/*165*/);
  1614. _spec=(T0*)n;
  1615. }
  1616. _ec=r51a_compound2(C,((T0*)ms51_33180),((T0*)ms12_951));
  1617. r216set_else_compound(((T216*)_i),_spec,_ec);
  1618. }
  1619.  else if(!(r51a_keyword(C,((T0*)ms12_951)))){
  1620. /*[IRF3.6wcp*/{T51* C1=C;
  1621. T0* b1=((T0*)ms51_76932);
  1622. r51warning(r51current_position(C1),b1);
  1623. }/*]*/
  1624. }
  1625. /*FI]*/
  1626. C->_last_instruction=_i;
  1627. }
  1628. /*FI]*/
  1629. return R;
  1630. }
  1631.  
  1632.  
  1633. T6 r51a_current(T51* C){
  1634. T6 R=0;
  1635. /*[IF*/
  1636. if(r92is_current()){
  1637. {T141*n=malloc(sizeof(*n));
  1638. *n=M141;
  1639. /*[IRF3.3make*/((((T141*)(n)))->_start_position)=(r92start_position((T92*)(oBC51tmp_name)));
  1640. /*]*/
  1641. C->_last_expression=(T0*)n;
  1642. }
  1643. R=1;
  1644. }
  1645. /*FI]*/
  1646. return R;
  1647. }
  1648.  
  1649.  
  1650. void r51a_rename_list(T51* C){
  1651. while (!(!(r51a_rename_pair(C)))) {
  1652. C->_ok=r51skip1(C,'\54');
  1653. }
  1654. }
  1655. /*No:EIFFEL_PARSER.us_or_else*/
  1656. /*No:EIFFEL_PARSER.case_insensitive*/
  1657. /*No:EIFFEL_PARSER.last_comments*/
  1658.  
  1659.  
  1660. void r51next_char(T51* C){
  1661. /*[IF*/
  1662. if(((C)->_column/*12*/)<(((T7*)((C)->_current_line/*20*/))->_count/*4*/)){
  1663. C->_column=((C)->_column/*12*/)+(1);
  1664. C->_cc=/*(IRF4.6item*/(((T7*)((C)->_current_line/*20*/))->_storage/*0*/)[((C)->_column/*12*/)-(1)]/*)*/;
  1665. }
  1666.  else if(((C)->_column/*12*/)==(((T7*)((C)->_current_line/*20*/))->_count/*4*/)){
  1667. C->_column=((C)->_column/*12*/)+(1);
  1668. C->_cc='\n';
  1669. }
  1670.  else if(((C)->_line/*16*/)==(((T52*)(oBC11parser_buffer))->_count/*4*/)){
  1671. C->_cc='\0';
  1672. }
  1673. else{
  1674. C->_column=1;
  1675. C->_line=((C)->_line/*16*/)+(1);
  1676. C->_current_line=r52item((C)->_line/*16*/);
  1677. /*[IF*/
  1678. if((((T7*)((C)->_current_line/*20*/))->_count/*4*/)==(0)){
  1679. C->_cc='\n';
  1680. }
  1681. else{
  1682. C->_cc=/*(IRF4.5first*//*(IRF4.6item*/(((T7*)((C)->_current_line/*20*/))->_storage/*0*/)[(1)-(1)]/*)*//*)*/;
  1683. }
  1684. /*FI]*/
  1685. }
  1686. /*FI]*/
  1687. }
  1688. /*No:EIFFEL_PARSER.us_slash*/
  1689.  
  1690.  
  1691. T6 r51a_unary(T51* C){
  1692. T6 R=0;
  1693. /*[IF*/
  1694. if(r51a_keyword(C,((T0*)ms13_1029))){
  1695. {T125*n=malloc(sizeof(*n));
  1696. *n=M125;
  1697. r125make(n,((T0*)ms13_1029),r51pos((C)->_start_line/*169*/,(C)->_start_column/*165*/));
  1698. C->_last_prefix=(T0*)n;
  1699. }
  1700. R=1;
  1701. }
  1702.  else if(r51skip1(C,'\53')){
  1703. {T125*n=malloc(sizeof(*n));
  1704. *n=M125;
  1705. r125make(n,((T0*)ms13_44),r51pos((C)->_start_line/*169*/,(C)->_start_column/*165*/));
  1706. C->_last_prefix=(T0*)n;
  1707. }
  1708. R=1;
  1709. }
  1710.  else if(r51skip1(C,'\55')){
  1711. {T125*n=malloc(sizeof(*n));
  1712. *n=M125;
  1713. r125make(n,((T0*)ms13_46),r51pos((C)->_start_line/*169*/,(C)->_start_column/*165*/));
  1714. C->_last_prefix=(T0*)n;
  1715. }
  1716. R=1;
  1717. }
  1718. /*FI]*/
  1719. return R;
  1720. }
  1721. /*No:EIFFEL_PARSER.drop_comments*/
  1722. /*No:EIFFEL_PARSER.ok*/
  1723.  
  1724.  
  1725. T0* r51analyse_class(T51* C,T0* a1){
  1726. T0* R=NULL;
  1727. T0* _path=NULL;
  1728. T2 _old_nbw=0;
  1729. T2 _old_nbe=0;
  1730. _path=((T52*)(oBC11parser_buffer))->_path/*0*/;
  1731. /*[IF*/
  1732. if((/*(IRF4.9nb_errors*/((T37*)(oBC11eh))->_nb_errors/*4*//*)*/)>(0)){
  1733. /*[IRF3.6append*/{T0* b1=((T0*)ms51_63808);
  1734. r7append((T7*)(oBC37explanation),b1);
  1735. }/*]*/
  1736. r37print_as_fatal_error((T37*)(oBC11eh));
  1737. }
  1738. /*FI]*/
  1739. r33put_integer((T33*)(oBC11echo),(/*(IRF4.9base_class_count*/((T44*)(oBC42base_class_dictionary))->_count/*32*//*)*/)+(1));
  1740. r33put_character((T33*)(oBC11echo),'\11');
  1741. r33put_string((T33*)(oBC11echo),_path);
  1742. r33put_character((T33*)(oBC11echo),'\n');
  1743. _old_nbe=/*(IRF4.9nb_errors*/((T37*)(oBC11eh))->_nb_errors/*4*//*)*/;
  1744. _old_nbw=/*(IRF4.9nb_warnings*/((T37*)(oBC11eh))->_nb_warnings/*0*//*)*/;
  1745. C->_is_running=1;
  1746. C->_inside_function=0;
  1747. C->_inside_once_function=0;
  1748. C->_in_ensure=0;
  1749. C->_last_comments=NULL;
  1750. C->_line=1;
  1751. C->_column=1;
  1752. C->_current_line=r52item((C)->_line/*16*/);
  1753. /*[IF*/
  1754. if((((T7*)((C)->_current_line/*20*/))->_count/*4*/)==(0)){
  1755. C->_cc='\n';
  1756. }
  1757. else{
  1758. C->_cc=/*(IRF4.5first*//*(IRF4.6item*/(((T7*)((C)->_current_line/*20*/))->_storage/*0*/)[(1)-(1)]/*)*//*)*/;
  1759. }
  1760. /*FI]*/
  1761. {T41*n=malloc(sizeof(*n));
  1762. *n=M41;
  1763. r41make(n);
  1764. C->_last_base_class=(T0*)n;
  1765. }
  1766. r51skip_comments(C);
  1767. r51a_class_declaration(C);
  1768. C->_is_running=0;
  1769. /*[IRF3.3unset_is_ready*/((((T52*)((T52*)(oBC11parser_buffer))))->_path)=(NULL);
  1770. /*]*/
  1771. R=(C)->_last_base_class/*65*/;
  1772. /*[IF*/
  1773. if(((/*(IRF4.9nb_errors*/((T37*)(oBC11eh))->_nb_errors/*4*//*)*/)-(_old_nbe))>(0)){
  1774. /*[IRF3.2show_nb_errors*/r51show_nb(/*(IRF4.9nb_errors*/((T37*)(oBC11eh))->_nb_errors/*4*//*)*/,((T0*)ms51_6567));
  1775. /*]*/
  1776. r33w_put_string(((T0*)ms51_10068));
  1777. r33w_put_string(_path);
  1778. r33w_put_string(((T0*)ms51_5467));
  1779. R=NULL;
  1780. }
  1781.  else if(((/*(IRF4.9nb_warnings*/((T37*)(oBC11eh))->_nb_warnings/*0*//*)*/)-(_old_nbw))>(0)){
  1782. /*[IRF3.2show_nb_warnings*/r51show_nb(/*(IRF4.9nb_warnings*/((T37*)(oBC11eh))->_nb_warnings/*0*//*)*/,((T0*)ms51_8021));
  1783. /*]*/
  1784. }
  1785. /*FI]*/
  1786. /*[IF*/
  1787. if((R)!=((void*)(NULL))){
  1788. r42add_class((T42*)(oBC11small_eiffel),R);
  1789. /*[IF*/
  1790. if(((a1)!=((void*)(NULL)))&&(((((T49*)a1))->_to_string/*0*/)!=((void*)(((T49*)((((T41*)R))->_name/*24*/))->_to_string/*0*/)))){
  1791. r37add_position((((T49*)a1))->_start_position/*4*/);
  1792. /*[IRF3.6append*/{T0* b1=((T0*)ms12_3810);
  1793. r7append((T7*)(oBC37explanation),b1);
  1794. }/*]*/
  1795. /*[IRF3.6append*/{T0* b1=_path;
  1796. r7append((T7*)(oBC37explanation),b1);
  1797. }/*]*/
  1798. /*[IRF3.6append*/{T0* b1=((T0*)ms51_35397);
  1799. r7append((T7*)(oBC37explanation),b1);
  1800. }/*]*/
  1801. /*[IRF3.6append*/{T0* b1=(((T49*)a1))->_to_string/*0*/;
  1802. r7append((T7*)(oBC37explanation),b1);
  1803. }/*]*/
  1804. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms12_166);
  1805. r37fatal_error((T37*)(oBC11eh),b1);
  1806. }/*]*/
  1807. }
  1808. /*FI]*/
  1809. r41get_started(((T41*)R));
  1810. }
  1811. /*FI]*/
  1812. return R;
  1813. }
  1814.  
  1815.  
  1816. void r51skip_comments(T51* C){
  1817. T2 _state=0;
  1818. T0* _sp=NULL;
  1819. while (!((_state)==(2))) {
  1820. {int z1=_state;
  1821.  
  1822. if((0==z1)){
  1823. {int z2=(C)->_cc/*24*/;
  1824.  
  1825. if(((9<=z2)&&(z2<=10))||(32==z2)){
  1826. r51next_char(C);
  1827. }
  1828.  else 
  1829. if((45==z2)){
  1830. r51next_char(C);
  1831. _state=1;
  1832. }
  1833.  else{_state=2;
  1834. }}
  1835. }
  1836.  else {{int z2=(C)->_cc/*24*/;
  1837.  
  1838. if((45==z2)){
  1839. /*[IF*/
  1840. if((C)->_drop_comments/*4*/){
  1841. }
  1842. else{
  1843. /*[IF*/
  1844. if(((C)->_last_comments/*25*/)==((void*)(NULL))){
  1845. {T39*n=malloc(sizeof(*n));
  1846. *n=M39;
  1847. r39make(n,(C)->_line/*16*/,((C)->_column/*12*/)-(1));
  1848. _sp=(T0*)n;
  1849. }
  1850. }
  1851. /*FI]*/
  1852. }
  1853. /*FI]*/
  1854. r51next_char(C);
  1855. /*[IRF3.3clear*/((((T7*)((T7*)(oBC51lcs))))->_count)=(0);
  1856. /*]*/
  1857. while (!(((C)->_cc/*24*/)==('\n'))) {
  1858. r7extend((T7*)(oBC51lcs),(C)->_cc/*24*/);
  1859. r51next_char(C);
  1860. }
  1861. /*[IF*/
  1862. if((C)->_drop_comments/*4*/){
  1863. }
  1864. else{
  1865. /*[IF*/
  1866. if(((C)->_last_comments/*25*/)==((void*)(NULL))){
  1867. {T64*n=malloc(sizeof(*n));
  1868. *n=M64;
  1869. r64make(n,_sp,se_ma32(1,
  1870. r7twin((T7*)(oBC51lcs))));
  1871. C->_last_comments=(T0*)n;
  1872. }
  1873. }
  1874. else{
  1875. /*[IRF3.5add_last*/r32add_last(((T32*)(((T64*)((C)->_last_comments/*25*/))->_list/*4*/)),r7twin((T7*)(oBC51lcs)));
  1876. /*]*/
  1877. }
  1878. /*FI]*/
  1879. }
  1880. /*FI]*/
  1881. _state=0;
  1882. }
  1883.  else{r51prev_char(C);
  1884. _state=2;
  1885. }}
  1886. }}
  1887. }
  1888. }
  1889.  
  1890.  
  1891. T6 r51a_local_variable(T51* C){
  1892. T6 R=0;
  1893. T2 _rank=0;
  1894. /*[IF*/
  1895. if(((C)->_local_vars/*53*/)!=((void*)(NULL))){
  1896. _rank=r162rank_of((T162*)((C)->_local_vars/*53*/),r92to_string((T92*)(oBC51tmp_name)));
  1897. /*[IF*/
  1898. if((_rank)>(0)){
  1899. C->_last_expression=r92to_local_name2((T92*)(oBC51tmp_name),(C)->_local_vars/*53*/,_rank);
  1900. R=1;
  1901. }
  1902. /*FI]*/
  1903. }
  1904. /*FI]*/
  1905. return R;
  1906. }
  1907. /*No:EIFFEL_PARSER.start_line*/
  1908.  
  1909.  
  1910. T6 r51a_retry(T51* C){
  1911. T6 R=0;
  1912. /*[IF*/
  1913. if(r51a_keyword(C,((T0*)ms12_2905))){
  1914. /*[IF*/
  1915. if(!((C)->_in_rescue/*45*/)){
  1916. r51error(r51pos((C)->_start_line/*169*/,(C)->_start_column/*165*/),((T0*)ms51_115380));
  1917. }
  1918. /*FI]*/
  1919. {T215*n=malloc(sizeof(*n));
  1920. *n=M215;
  1921. /*[IRF3.3make*/((((T215*)(n)))->_start_position)=(r51pos((C)->_start_line/*169*/,(C)->_start_column/*165*/));
  1922. /*]*/
  1923. C->_last_instruction=(T0*)n;
  1924. }
  1925. R=1;
  1926. }
  1927. /*FI]*/
  1928. return R;
  1929. }
  1930. /*No:EIFFEL_PARSER.arguments*/
  1931.  
  1932.  
  1933. T6 r51a_e10(T51* C){
  1934. T6 R=0;
  1935. /*[IF*/
  1936. if(r51a_strip(C)){
  1937. R=1;
  1938. }
  1939.  else if(r51skip1(C,'\50')){
  1940. R=1;
  1941. /*[IF*/
  1942. if(r51a_expression(C)){
  1943. /*[IF*/
  1944. if(r51skip1(C,'\51')){
  1945. r51a_r10(C,0,(C)->_last_expression/*97*/,NULL,NULL);
  1946. }
  1947. else{
  1948. r51fcp(C,((T0*)ms51_40743));
  1949. }
  1950. /*FI]*/
  1951. }
  1952. else{
  1953. r51fcp(C,((T0*)ms51_29020));
  1954. }
  1955. /*FI]*/
  1956. }
  1957.  else if(r51a_manifest_constant(C)){
  1958. C->_last_expression=(C)->_last_manifest_constant/*141*/;
  1959. R=1;
  1960. /*[IF*/
  1961. if(r51skip1unless2(C,'\56','\56')){
  1962. /*[IRF3.6wcp*/{T51* C1=C;
  1963. T0* b1=((T0*)ms51_129072);
  1964. r51warning(r51current_position(C1),b1);
  1965. }/*]*/
  1966. r51a_after_a_dot(C,0,(C)->_last_expression/*97*/);
  1967. }
  1968. /*FI]*/
  1969. }
  1970.  else if(r51a_precursor(C,0)){
  1971. R=1;
  1972. }
  1973.  else if(r51a_identifier(C)){
  1974. R=1;
  1975. /*[IF*/
  1976. if(((((r51a_result(C))||(r51a_current(C)))||(r51a_void(C)))||(r51a_local_variable(C)))||(r51a_argument(C))){
  1977. r51a_r10(C,0,(C)->_last_expression/*97*/,NULL,NULL);
  1978. }
  1979. else{
  1980. r51a_function_call(C);
  1981. }
  1982. /*FI]*/
  1983. }
  1984. /*FI]*/
  1985. return R;
  1986. }
  1987. /*No:EIFFEL_PARSER.fz_select*/
  1988.  
  1989.  
  1990. T6 r51a_conditional(T51* C){
  1991. T6 R=0;
  1992. T0* _ifthenelse=NULL;
  1993. /*[IF*/
  1994. if(r51a_keyword(C,((T0*)ms12_420))){
  1995. R=1;
  1996. {T206*n=malloc(sizeof(*n));
  1997. *n=M206;
  1998. /*[IRF3.3make*/((((T206*)(n)))->_start_position)=(r51pos((C)->_start_line/*169*/,(C)->_start_column/*165*/));
  1999. /*]*/
  2000. _ifthenelse=(T0*)n;
  2001. }
  2002. r51a_then_part_list(C,_ifthenelse);
  2003. /*[IF*/
  2004. if(r51a_keyword(C,((T0*)ms12_1740))){
  2005. /*[IRF3.3set_else_compound*/((((T206*)(((T206*)_ifthenelse))))->_else_compound)=(r51a_compound2(C,((T0*)ms51_13644),((T0*)ms12_951)));
  2006. /*]*/
  2007. }
  2008. else{
  2009. /*[IF*/
  2010. if(!(r51a_keyword(C,((T0*)ms12_951)))){
  2011. /*[IRF3.6wcp*/{T51* C1=C;
  2012. T0* b1=((T0*)ms51_29240);
  2013. r51warning(r51current_position(C1),b1);
  2014. }/*]*/
  2015. }
  2016. /*FI]*/
  2017. }
  2018. /*FI]*/
  2019. C->_last_instruction=_ifthenelse;
  2020. }
  2021. /*FI]*/
  2022. return R;
  2023. }
  2024. /*No:EIFFEL_PARSER.is_running*/
  2025.  
  2026.  
  2027. void r51a_r10(T51* C,T6 a1,T0* a2,T0* a3,T0* a4){
  2028. /*[IF*/
  2029. if(r51skip1unless2(C,'\56','\56')){
  2030. r51a_after_a_dot(C,a1,r51to_call(a2,a3,a4));
  2031. }
  2032. else{
  2033. /*[IF*/
  2034. if(a1){
  2035. C->_last_instruction=r51to_proc_call(C,a2,a3,a4);
  2036. C->_last_expression=NULL;
  2037. }
  2038. else{
  2039. C->_last_expression=r51to_call(a2,a3,a4);
  2040. C->_last_instruction=NULL;
  2041. }
  2042. /*FI]*/
  2043. }
  2044. /*FI]*/
  2045. }
  2046. /*No:EIFFEL_PARSER.last_prefix*/
  2047. T0*oBC51tmp_string=NULL;
  2048. /*No:EIFFEL_PARSER.last_infix*/
  2049. /*No:EIFFEL_PARSER.fz_export*/
  2050.  
  2051.  
  2052. T6 r51a_tag_mark(T51* C){
  2053. T6 R=0;
  2054. /*[IF*/
  2055. if(r51a_identifier(C)){
  2056. /*[IF*/
  2057. if(r51skip1unless2(C,'\72','\75')){
  2058. R=1;
  2059. C->_last_tag_mark=r92to_tag_name((T92*)(oBC51tmp_name));
  2060. }
  2061. else{
  2062. C->_last_tag_mark=NULL;
  2063. r51go_back_at(C,((T92*)(oBC51tmp_name))->_li/*4*/,((T92*)(oBC51tmp_name))->_co/*8*/);
  2064. }
  2065. /*FI]*/
  2066. }
  2067. else{
  2068. C->_last_tag_mark=NULL;
  2069. }
  2070. /*FI]*/
  2071. return R;
  2072. }
  2073. /*No:EIFFEL_PARSER.last_feature_name_list*/
  2074. /*No:EIFFEL_PARSER.last_manifest_constant*/
  2075. /*No:EIFFEL_PARSER.fz_local*/
  2076. /*No:EIFFEL_PARSER.fz_jvm_invokevirtual*/
  2077. /*No:EIFFEL_PARSER.current_class*/
  2078. /*No:EIFFEL_PARSER.last_tag_mark*/
  2079.  
  2080.  
  2081. void r51a_base_class_name1(T51* C){
  2082. T0* _ccn=NULL;
  2083. T6 _do_warning=0;
  2084. T2 _state=0;
  2085. _ccn=((T41*)((C)->_last_base_class/*65*/))->_name/*24*/;
  2086. /*[IF*/
  2087. if(r3is_letter((C)->_cc/*24*/)){
  2088. r39set_line_column((T39*)((((T49*)_ccn))->_start_position/*4*/),(C)->_line/*16*/,(C)->_column/*12*/);
  2089. r92initialize((T92*)(oBC51tmp_name),(C)->_line/*16*/,(C)->_column/*12*/);
  2090. /*[IF*/
  2091. if((((unsigned)((C)->_cc/*24*/))>=((unsigned)('a')))){
  2092. _do_warning=1;
  2093. C->_cc=r3to_upper((C)->_cc/*24*/);
  2094. }
  2095. /*FI]*/
  2096. /*[IRF3.6extend*/{T3 b1=(C)->_cc/*24*/;
  2097. r7extend((T7*)(oBC92tmp_string),b1);
  2098. }/*]*/
  2099. while (!((_state)>(0))) {
  2100. r51next_char(C);
  2101. {int z1=(C)->_cc/*24*/;
  2102.  
  2103. if(((48<=z1)&&(z1<=57))||((65<=z1)&&(z1<=90))||(95==z1)){
  2104. /*[IRF3.6extend*/{T3 b1=(C)->_cc/*24*/;
  2105. r7extend((T7*)(oBC92tmp_string),b1);
  2106. }/*]*/
  2107. }
  2108.  else 
  2109. if(((97<=z1)&&(z1<=122))){
  2110. _do_warning=1;
  2111. /*[IRF3.6extend*/{T3 b1=r3to_upper((C)->_cc/*24*/);
  2112. r7extend((T7*)(oBC92tmp_string),b1);
  2113. }/*]*/
  2114. }
  2115.  else{_state=1;
  2116. }}
  2117. }
  2118. r51skip_comments(C);
  2119. /*[IF*/
  2120. if(r92isa_keyword()){
  2121. r37add_position((((T49*)_ccn))->_start_position/*4*/);
  2122. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms51_71470);
  2123. r37fatal_error((T37*)(oBC11eh),b1);
  2124. }/*]*/
  2125. }
  2126. /*FI]*/
  2127. /*[IF*/
  2128. if(_do_warning){
  2129. r51warning((((T49*)_ccn))->_start_position/*4*/,((T0*)ms51_116415));
  2130. }
  2131. /*FI]*/
  2132. r49identify(((T49*)_ccn),r92to_string((T92*)(oBC51tmp_name)));
  2133. }
  2134. else{
  2135. r51fcp(C,((T0*)ms51_71470));
  2136. }
  2137. /*FI]*/
  2138. /*[IF*/
  2139. if(r32fast_has((T32*)(oBC51forbidden_class),(((T49*)_ccn))->_to_string/*0*/)){
  2140. r37add_position((((T49*)_ccn))->_start_position/*4*/);
  2141. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms51_44356);
  2142. r37fatal_error((T37*)(oBC11eh),b1);
  2143. }/*]*/
  2144. }
  2145. /*FI]*/
  2146. }
  2147. /*No:EIFFEL_PARSER.fz_01*/
  2148. /*No:EIFFEL_PARSER.fz_03*/
  2149. /*No:EIFFEL_PARSER.fz_iinaiv*/
  2150.  
  2151.  
  2152. T6 r51a_keyword(T51* C,T0* a1){
  2153. T6 R=0;
  2154. T2 _keyword_count=0;
  2155. T2 _i=0;
  2156. _keyword_count=(((T7*)a1))->_count/*4*/;
  2157. C->_start_line=(C)->_line/*16*/;
  2158. C->_start_column=(C)->_column/*12*/;
  2159. while (!(((_i)==(_keyword_count))||(!(r3same_as((C)->_cc/*24*/,/*(IRF4.6item*/((((T7*)a1))->_storage/*0*/)[((_i)+(1))-(1)]/*)*/))))) {
  2160. _i=(_i)+(1);
  2161. r51next_char(C);
  2162. }
  2163. /*[IF*/
  2164. if((_i)==(_keyword_count)){
  2165. {int z1=(C)->_cc/*24*/;
  2166.  
  2167. if(((9<=z1)&&(z1<=10))||(32==z1)||(45==z1)){
  2168. R=1;
  2169. C->_last_keyword=a1;
  2170. r51skip_comments(C);
  2171. }
  2172.  else 
  2173. if(((48<=z1)&&(z1<=57))||((65<=z1)&&(z1<=90))||(95==z1)||((97<=z1)&&(z1<=122))){
  2174. while (!((_i)==(0))) {
  2175. r51prev_char(C);
  2176. _i=(_i)-(1);
  2177. }
  2178. }
  2179.  else{R=1;
  2180. C->_last_keyword=a1;
  2181. }}
  2182. }
  2183. else{
  2184. while (!((_i)==(0))) {
  2185. r51prev_char(C);
  2186. _i=(_i)-(1);
  2187. }
  2188. }
  2189. /*FI]*/
  2190. return R;
  2191. }
  2192. /*No:EIFFEL_PARSER.fz_until*/
  2193. /*No:EIFFEL_PARSER.last_binary*/
  2194.  
  2195.  
  2196. T0* r51a_routine_body(T51* C){
  2197. T0* R=NULL;
  2198. /*[IF*/
  2199. if(r51a_keyword(C,((T0*)ms12_10664))){
  2200. r41set_is_deferred((T41*)((C)->_last_base_class/*65*/));
  2201. R=r182to_deferred_routine((T182*)(oBC51tmp_feature));
  2202. }
  2203.  else if(r51a_keyword(C,((T0*)ms12_11448))){
  2204. R=r51a_external(C);
  2205. }
  2206.  else if(r51a_keyword(C,((T0*)ms12_428))){
  2207. /*[IRF3.3set_routine_body*/((((T182*)((T182*)(oBC51tmp_feature))))->_routine_body)=(r51a_compound1(C));
  2208. /*]*/
  2209. R=r182to_procedure_or_function((T182*)(oBC51tmp_feature));
  2210. }
  2211.  else if(r51a_keyword(C,((T0*)ms12_1724a))){
  2212. C->_inside_once_function=1;
  2213. /*[IRF3.3set_routine_body*/((((T182*)((T182*)(oBC51tmp_feature))))->_routine_body)=(r51a_compound1(C));
  2214. /*]*/
  2215. R=r182to_once_routine((T182*)(oBC51tmp_feature));
  2216. }
  2217. else{
  2218. r51fcp(C,((T0*)ms51_34276));
  2219. }
  2220. /*FI]*/
  2221. return R;
  2222. }
  2223. /*No:EIFFEL_PARSER.last_expression*/
  2224. /*No:EIFFEL_PARSER.fz_59*/
  2225.  
  2226.  
  2227. T6 r51a_void(T51* C){
  2228. T6 R=0;
  2229. /*[IF*/
  2230. if(r92is_void()){
  2231. C->_last_expression=r92to_e_void((T92*)(oBC51tmp_name));
  2232. R=1;
  2233. }
  2234. /*FI]*/
  2235. return R;
  2236. }
  2237.  
  2238.  
  2239. T6 r51a_class_type(T51* C){
  2240. T6 R=0;
  2241. T0* _generic_list=NULL;
  2242. T0* _base_class_name=NULL;
  2243. T2 _state=0;
  2244. /*[IF*/
  2245. if(r51a_base_type(C)){
  2246. C->_last_class_type=(C)->_last_base_type/*69*/;
  2247. R=1;
  2248. }
  2249.  else if(r51a_base_class_name(C)){
  2250. R=1;
  2251. _base_class_name=(C)->_last_class_name/*89*/;
  2252. while (!((_state)>(2))) {
  2253. {int z1=_state;
  2254.  
  2255. if((0==z1)){
  2256. /*[IF*/
  2257. if(r51skip1(C,'\133')){
  2258. _state=1;
  2259. }
  2260. else{
  2261. {T257*n=malloc(sizeof(*n));
  2262. *n=M257;
  2263. /*[IRF3.3make*/((((T257*)(n)))->_base_class_name)=(_base_class_name);
  2264. /*]*/
  2265. C->_last_class_type=(T0*)n;
  2266. }
  2267. _state=3;
  2268. }
  2269. /*FI]*/
  2270. }
  2271.  else 
  2272. if((1==z1)){
  2273. /*[IF*/
  2274. if(r51a_type(C)){
  2275. /*[IF*/
  2276. if((_generic_list)==((void*)(NULL))){
  2277. _generic_list=se_ma245(1,
  2278. (C)->_last_type/*157*/);
  2279. }
  2280. else{
  2281. r245add_last(((T245*)_generic_list),(C)->_last_type/*157*/);
  2282. }
  2283. /*FI]*/
  2284. _state=2;
  2285. }
  2286.  else if(((C)->_cc/*24*/)==('\54')){
  2287. /*[IRF3.6wcp*/{T51* C1=C;
  2288. T0* b1=((T0*)ms51_26277);
  2289. r51warning(r51current_position(C1),b1);
  2290. }/*]*/
  2291. C->_ok=r51skip1(C,'\54');
  2292. }
  2293.  else if(((C)->_cc/*24*/)==('\135')){
  2294. _state=2;
  2295. }
  2296. else{
  2297. r51fcp(C,((T0*)ms51_25441));
  2298. _state=2;
  2299. }
  2300. /*FI]*/
  2301. }
  2302.  else{/*[IF*/
  2303. if(r51skip1(C,'\54')){
  2304. _state=1;
  2305. }
  2306.  else if(((C)->_cc/*24*/)==('\135')){
  2307. /*[IF*/
  2308. if((_generic_list)==((void*)(NULL))){
  2309. /*[IRF3.6wcp*/{T51* C1=C;
  2310. T0* b1=((T0*)ms51_54404);
  2311. r51warning(r51current_position(C1),b1);
  2312. }/*]*/
  2313. {T257*n=malloc(sizeof(*n));
  2314. *n=M257;
  2315. /*[IRF3.3make*/((((T257*)(n)))->_base_class_name)=(_base_class_name);
  2316. /*]*/
  2317. C->_last_class_type=(T0*)n;
  2318. }
  2319. }
  2320. else{
  2321. {T258*n=malloc(sizeof(*n));
  2322. *n=M258;
  2323. r258make(n,_base_class_name,_generic_list);
  2324. C->_last_class_type=(T0*)n;
  2325. }
  2326. }
  2327. /*FI]*/
  2328. C->_ok=r51skip1(C,'\135');
  2329. _state=3;
  2330. }
  2331.  else if(r51a_type(C)){
  2332. /*[IF*/
  2333. if((_generic_list)==((void*)(NULL))){
  2334. _generic_list=se_ma245(1,
  2335. (C)->_last_type/*157*/);
  2336. }
  2337. else{
  2338. r245add_last(((T245*)_generic_list),(C)->_last_type/*157*/);
  2339. }
  2340. /*FI]*/
  2341. r51warning(X62start_position((C)->_last_type/*157*/),((T0*)ms51_9410));
  2342. }
  2343. else{
  2344. r51fcp(C,((T0*)ms51_20315));
  2345. _state=3;
  2346. }
  2347. /*FI]*/
  2348. }}
  2349. }
  2350. }
  2351. /*FI]*/
  2352. return R;
  2353. }
  2354. /*No:EIFFEL_PARSER.in_ensure*/
  2355. /*No:EIFFEL_PARSER.fz_end*/
  2356. /*No:EIFFEL_PARSER.fz_external*/
  2357. /*No:EIFFEL_PARSER.inside_function*/
  2358. /*No:EIFFEL_PARSER.us_and*/
  2359.  
  2360.  
  2361. T0* r51a_assertion(T51* C){
  2362. T0* R=NULL;
  2363. T2 _state=0;
  2364. T0* _assertion=NULL;
  2365. T0* _expression=NULL;
  2366. T0* _tag=NULL;
  2367. while (!((_state)>(3))) {
  2368. {int z1=_state;
  2369.  
  2370. if((0==z1)){
  2371. /*[IF*/
  2372. if(((C)->_cc/*24*/)==('\73')){
  2373. /*[IRF3.6wcp*/{T51* C1=C;
  2374. T0* b1=((T0*)ms12_41475);
  2375. r51warning(r51current_position(C1),b1);
  2376. }/*]*/
  2377. C->_ok=r51skip1(C,'\73');
  2378. /*[IF*/
  2379. if(((C)->_last_comments/*25*/)!=((void*)(NULL))){
  2380. {T85*n=malloc(sizeof(*n));
  2381. *n=M85;
  2382. r85make(n,NULL,NULL,r51get_comments(C));
  2383. _assertion=(T0*)n;
  2384. }
  2385. /*[IF*/
  2386. if((R)==((void*)(NULL))){
  2387. R=se_ma88(1,
  2388. _assertion);
  2389. }
  2390. else{
  2391. r88add_last(((T88*)R),_assertion);
  2392. }
  2393. /*FI]*/
  2394. }
  2395. /*FI]*/
  2396. }
  2397.  else if(r51a_tag_mark(C)){
  2398. _tag=(C)->_last_tag_mark/*161*/;
  2399. _state=1;
  2400. }
  2401.  else if(r51a_expression(C)){
  2402. _expression=(C)->_last_expression/*97*/;
  2403. _state=2;
  2404. }
  2405. else{
  2406. _state=4;
  2407. }
  2408. /*FI]*/
  2409. }
  2410.  else 
  2411. if((1==z1)){
  2412. /*[IF*/
  2413. if(r51skip1(C,'\73')){
  2414. {T85*n=malloc(sizeof(*n));
  2415. *n=M85;
  2416. r85make(n,_tag,NULL,r51get_comments(C));
  2417. _assertion=(T0*)n;
  2418. }
  2419. /*[IF*/
  2420. if((R)==((void*)(NULL))){
  2421. R=se_ma88(1,
  2422. _assertion);
  2423. }
  2424. else{
  2425. r88add_last(((T88*)R),_assertion);
  2426. }
  2427. /*FI]*/
  2428. _state=0;
  2429. }
  2430.  else if(r51a_tag_mark(C)){
  2431. {T85*n=malloc(sizeof(*n));
  2432. *n=M85;
  2433. r85make(n,_tag,NULL,r51get_comments(C));
  2434. _assertion=(T0*)n;
  2435. }
  2436. /*[IF*/
  2437. if((R)==((void*)(NULL))){
  2438. R=se_ma88(1,
  2439. _assertion);
  2440. }
  2441. else{
  2442. r88add_last(((T88*)R),_assertion);
  2443. }
  2444. /*FI]*/
  2445. _tag=(C)->_last_tag_mark/*161*/;
  2446. }
  2447.  else if(r51a_expression(C)){
  2448. _expression=(C)->_last_expression/*97*/;
  2449. _state=3;
  2450. }
  2451. else{
  2452. {T85*n=malloc(sizeof(*n));
  2453. *n=M85;
  2454. r85make(n,_tag,NULL,r51get_comments(C));
  2455. _assertion=(T0*)n;
  2456. }
  2457. /*[IF*/
  2458. if((R)==((void*)(NULL))){
  2459. R=se_ma88(1,
  2460. _assertion);
  2461. }
  2462. else{
  2463. r88add_last(((T88*)R),_assertion);
  2464. }
  2465. /*FI]*/
  2466. _state=4;
  2467. }
  2468. /*FI]*/
  2469. }
  2470.  else 
  2471. if((2==z1)){
  2472. /*[IF*/
  2473. if(r51skip1(C,'\73')){
  2474. {T85*n=malloc(sizeof(*n));
  2475. *n=M85;
  2476. r85make(n,NULL,_expression,r51get_comments(C));
  2477. _assertion=(T0*)n;
  2478. }
  2479. /*[IF*/
  2480. if((R)==((void*)(NULL))){
  2481. R=se_ma88(1,
  2482. _assertion);
  2483. }
  2484. else{
  2485. r88add_last(((T88*)R),_assertion);
  2486. }
  2487. /*FI]*/
  2488. _state=0;
  2489. }
  2490.  else if(r51a_tag_mark(C)){
  2491. {T85*n=malloc(sizeof(*n));
  2492. *n=M85;
  2493. r85make(n,NULL,_expression,r51get_comments(C));
  2494. _assertion=(T0*)n;
  2495. }
  2496. /*[IF*/
  2497. if((R)==((void*)(NULL))){
  2498. R=se_ma88(1,
  2499. _assertion);
  2500. }
  2501. else{
  2502. r88add_last(((T88*)R),_assertion);
  2503. }
  2504. /*FI]*/
  2505. _tag=(C)->_last_tag_mark/*161*/;
  2506. _state=1;
  2507. }
  2508.  else if(r51a_expression(C)){
  2509. {T85*n=malloc(sizeof(*n));
  2510. *n=M85;
  2511. r85make(n,NULL,_expression,r51get_comments(C));
  2512. _assertion=(T0*)n;
  2513. }
  2514. /*[IF*/
  2515. if((R)==((void*)(NULL))){
  2516. R=se_ma88(1,
  2517. _assertion);
  2518. }
  2519. else{
  2520. r88add_last(((T88*)R),_assertion);
  2521. }
  2522. /*FI]*/
  2523. _expression=(C)->_last_expression/*97*/;
  2524. _state=2;
  2525. }
  2526. else{
  2527. {T85*n=malloc(sizeof(*n));
  2528. *n=M85;
  2529. r85make(n,NULL,_expression,r51get_comments(C));
  2530. _assertion=(T0*)n;
  2531. }
  2532. /*[IF*/
  2533. if((R)==((void*)(NULL))){
  2534. R=se_ma88(1,
  2535. _assertion);
  2536. }
  2537. else{
  2538. r88add_last(((T88*)R),_assertion);
  2539. }
  2540. /*FI]*/
  2541. _state=4;
  2542. }
  2543. /*FI]*/
  2544. }
  2545.  else{/*[IF*/
  2546. if(r51skip1(C,'\73')){
  2547. {T85*n=malloc(sizeof(*n));
  2548. *n=M85;
  2549. r85make(n,_tag,_expression,r51get_comments(C));
  2550. _assertion=(T0*)n;
  2551. }
  2552. /*[IF*/
  2553. if((R)==((void*)(NULL))){
  2554. R=se_ma88(1,
  2555. _assertion);
  2556. }
  2557. else{
  2558. r88add_last(((T88*)R),_assertion);
  2559. }
  2560. /*FI]*/
  2561. _state=0;
  2562. }
  2563.  else if(r51a_tag_mark(C)){
  2564. {T85*n=malloc(sizeof(*n));
  2565. *n=M85;
  2566. r85make(n,_tag,_expression,r51get_comments(C));
  2567. _assertion=(T0*)n;
  2568. }
  2569. /*[IF*/
  2570. if((R)==((void*)(NULL))){
  2571. R=se_ma88(1,
  2572. _assertion);
  2573. }
  2574. else{
  2575. r88add_last(((T88*)R),_assertion);
  2576. }
  2577. /*FI]*/
  2578. _tag=(C)->_last_tag_mark/*161*/;
  2579. _state=1;
  2580. }
  2581.  else if(r51a_expression(C)){
  2582. {T85*n=malloc(sizeof(*n));
  2583. *n=M85;
  2584. r85make(n,_tag,_expression,r51get_comments(C));
  2585. _assertion=(T0*)n;
  2586. }
  2587. /*[IF*/
  2588. if((R)==((void*)(NULL))){
  2589. R=se_ma88(1,
  2590. _assertion);
  2591. }
  2592. else{
  2593. r88add_last(((T88*)R),_assertion);
  2594. }
  2595. /*FI]*/
  2596. _expression=(C)->_last_expression/*97*/;
  2597. _state=2;
  2598. }
  2599. else{
  2600. {T85*n=malloc(sizeof(*n));
  2601. *n=M85;
  2602. r85make(n,_tag,_expression,r51get_comments(C));
  2603. _assertion=(T0*)n;
  2604. }
  2605. /*[IF*/
  2606. if((R)==((void*)(NULL))){
  2607. R=se_ma88(1,
  2608. _assertion);
  2609. }
  2610. else{
  2611. r88add_last(((T88*)R),_assertion);
  2612. }
  2613. /*FI]*/
  2614. _state=4;
  2615. }
  2616. /*FI]*/
  2617. }}
  2618. }
  2619. return R;
  2620. }
  2621. /*No:EIFFEL_PARSER.in_rescue*/
  2622. /*No:EIFFEL_PARSER.fz_old*/
  2623.  
  2624.  
  2625. T6 r51a_feature_name(T51* C){
  2626. T6 R=0;
  2627. /*[IF*/
  2628. if(r51a_prefix(C)){
  2629. C->_last_feature_name=(C)->_last_prefix/*125*/;
  2630. R=1;
  2631. }
  2632.  else if(r51a_infix(C)){
  2633. C->_last_feature_name=(C)->_last_infix/*121*/;
  2634. R=1;
  2635. }
  2636.  else if(r51a_identifier(C)){
  2637. C->_last_feature_name=r92to_simple_feature_name((T92*)(oBC51tmp_name));
  2638. R=1;
  2639. }
  2640. /*FI]*/
  2641. return R;
  2642. }
  2643.  
  2644.  
  2645. T6 r51a_feature_declaration(T51* C){
  2646. T6 R=0;
  2647. r182initialize((T182*)(oBC51tmp_feature));
  2648. /*[IF*/
  2649. if(r51a_keyword(C,((T0*)ms12_7350))){
  2650. /*[IF*/
  2651. if(r51a_feature_name(C)){
  2652. R=1;
  2653. r51to_frozen_feature_name(C);
  2654. r182add_synonym((C)->_last_feature_name/*105*/);
  2655. }
  2656. else{
  2657. r51fcp(C,((T0*)ms51_33616));
  2658. }
  2659. /*FI]*/
  2660. }
  2661.  else if(r51a_feature_name(C)){
  2662. R=1;
  2663. r182add_synonym((C)->_last_feature_name/*105*/);
  2664. }
  2665. /*FI]*/
  2666. while (!(!(r51skip1(C,'\54')))) {
  2667. /*[IF*/
  2668. if(r51a_keyword(C,((T0*)ms12_7350))){
  2669. /*[IF*/
  2670. if(r51a_feature_name(C)){
  2671. r51to_frozen_feature_name(C);
  2672. r182add_synonym((C)->_last_feature_name/*105*/);
  2673. }
  2674. else{
  2675. r51fcp(C,((T0*)ms51_82695));
  2676. }
  2677. /*FI]*/
  2678. }
  2679.  else if(r51a_feature_name(C)){
  2680. r182add_synonym((C)->_last_feature_name/*105*/);
  2681. }
  2682. else{
  2683. /*[IRF3.6ecp*/{T51* C1=C;
  2684. T0* b1=((T0*)ms51_57900);
  2685. r51error(r51current_position(C1),b1);
  2686. }/*]*/
  2687. }
  2688. /*FI]*/
  2689. }
  2690. /*[IF*/
  2691. if(R){
  2692. r51a_formal_arg_list(C);
  2693. /*[IF*/
  2694. if(r51skip1(C,'\72')){
  2695. /*[IF*/
  2696. if(r51a_type(C)){
  2697. C->_inside_function=1;
  2698. /*[IRF3.3set_type*/((((T182*)((T182*)(oBC51tmp_feature))))->_type)=((C)->_last_type/*157*/);
  2699. /*]*/
  2700. }
  2701. else{
  2702. r51fcp(C,((T0*)ms51_25441));
  2703. }
  2704. /*FI]*/
  2705. }
  2706. else{
  2707. C->_inside_function=0;
  2708. }
  2709. /*FI]*/
  2710. /*[IF*/
  2711. if(r51a_keyword(C,((T0*)ms12_446))){
  2712. /*[IF*/
  2713. if(r51a_keyword(C,((T0*)ms12_7098))){
  2714. C->_last_feature_declaration=r182to_cst_att_unique((T182*)(oBC51tmp_feature));
  2715. }
  2716.  else if(r51a_boolean_constant(C)){
  2717. C->_last_feature_declaration=r182to_cst_att_boolean((T182*)(oBC51tmp_feature),(C)->_last_boolean_constant/*81*/);
  2718. }
  2719.  else if(r51a_character_constant(C)){
  2720. C->_last_feature_declaration=r182to_cst_att_character((T182*)(oBC51tmp_feature),(C)->_last_character_constant/*85*/);
  2721. }
  2722.  else if(r51a_manifest_string(C)){
  2723. C->_last_feature_declaration=r182to_cst_att_string((T182*)(oBC51tmp_feature),(C)->_last_manifest_string/*145*/);
  2724. }
  2725.  else if(r51a_bit_constant(C)){
  2726. C->_last_feature_declaration=r182to_cst_att_bit((T182*)(oBC51tmp_feature),(C)->_last_bit_constant/*77*/);
  2727. }
  2728.  else if(r51a_real_constant(C)){
  2729. C->_last_feature_declaration=r182to_cst_att_real((T182*)(oBC51tmp_feature),(C)->_last_real_constant/*153*/);
  2730. }
  2731.  else if(r51a_integer_constant(C)){
  2732. C->_last_feature_declaration=r182to_cst_att_integer((T182*)(oBC51tmp_feature),(C)->_last_integer_constant/*129*/);
  2733. }
  2734. else{
  2735. C->_last_feature_declaration=r51a_routine(C);
  2736. }
  2737. /*FI]*/
  2738. }
  2739. else{
  2740. C->_last_feature_declaration=r182to_writable_attribute((T182*)(oBC51tmp_feature));
  2741. }
  2742. /*FI]*/
  2743. C->_inside_function=0;
  2744. C->_inside_once_function=0;
  2745. C->_arguments=NULL;
  2746. }
  2747. /*FI]*/
  2748. return R;
  2749. }
  2750.  
  2751.  
  2752. void r51a_ascii_code(T51* C){
  2753. T2 _counter=0;
  2754. r51next_char(C);
  2755. _counter=0;
  2756. C->_last_ascii_code=0;
  2757. while (!(((_counter)>(3))||(((C)->_cc/*24*/)==('\57')))) {
  2758. {int z1=(C)->_cc/*24*/;
  2759.  
  2760. if(((48<=z1)&&(z1<=57))){
  2761. C->_last_ascii_code=(((C)->_last_ascii_code/*61*/)*(10))+(r3value((C)->_cc/*24*/));
  2762. }
  2763.  else{r51fcp(C,((T0*)ms51_75355));
  2764. }}
  2765. _counter=(_counter)+(1);
  2766. r51next_char(C);
  2767. }
  2768. /*[IF*/
  2769. if((_counter)==(0)){
  2770. r51fcp(C,((T0*)ms51_37500));
  2771. }
  2772.  else if((_counter)>(3)){
  2773. r51fcp(C,((T0*)ms51_98605));
  2774. }
  2775. else{
  2776. }
  2777. /*FI]*/
  2778. }
  2779. /*No:EIFFEL_PARSER.em1*/
  2780. /*No:EIFFEL_PARSER.em2*/
  2781. /*No:EIFFEL_PARSER.fz_ensure*/
  2782. /*No:EIFFEL_PARSER.last_index_value*/
  2783. /*No:EIFFEL_PARSER.em3*/
  2784. /*No:EIFFEL_PARSER.em4*/
  2785.  
  2786.  
  2787. T0* r51to_proc_call(T51* C,T0* a1,T0* a2,T0* a3){
  2788. T0* R=NULL;
  2789. /*[IF*/
  2790. if((a2)==((void*)(NULL))){
  2791. r51fcp(C,((T0*)ms51_198189));
  2792. }
  2793.  else if((a3)==((void*)(NULL))){
  2794. {T146*n=malloc(sizeof(*n));
  2795. *n=M146;
  2796. r146make(n,a1,a2);
  2797. R=(T0*)n;
  2798. }
  2799. }
  2800.  else if((r132count(((T132*)a3)))==(1)){
  2801. {T147*n=malloc(sizeof(*n));
  2802. *n=M147;
  2803. r147make(n,a1,a2,a3);
  2804. R=(T0*)n;
  2805. }
  2806. }
  2807. else{
  2808. {T148*n=malloc(sizeof(*n));
  2809. *n=M148;
  2810. r148make(n,a1,a2,a3);
  2811. R=(T0*)n;
  2812. }
  2813. }
  2814. /*FI]*/
  2815. return R;
  2816. }
  2817. /*No:EIFFEL_PARSER.em5*/
  2818. /*No:EIFFEL_PARSER.last_type*/
  2819. /*No:EIFFEL_PARSER.em6*/
  2820. /*No:EIFFEL_PARSER.em7*/
  2821.  
  2822.  
  2823. T6 r51a_index_value(T51* C){
  2824. T6 R=0;
  2825. /*[IF*/
  2826. if(r51a_identifier(C)){
  2827. C->_last_index_value=r92to_simple_feature_name((T92*)(oBC51tmp_name));
  2828. R=1;
  2829. }
  2830.  else if(r51a_manifest_constant(C)){
  2831. C->_last_index_value=(C)->_last_manifest_constant/*141*/;
  2832. R=1;
  2833. }
  2834. /*FI]*/
  2835. return R;
  2836. }
  2837.  
  2838.  
  2839. T6 r51a_expression(T51* C){
  2840. T6 R=0;
  2841. T0* _list=NULL;
  2842. T0* _sp=NULL;
  2843. /*[IF*/
  2844. if(r51skip2(C,'\74','\74')){
  2845. R=1;
  2846. {T39*n=malloc(sizeof(*n));
  2847. *n=M39;
  2848. r39make(n,(C)->_start_line/*169*/,(C)->_start_column/*165*/);
  2849. _sp=(T0*)n;
  2850. }
  2851. while (!(!(r51a_expression(C)))) {
  2852. /*[IF*/
  2853. if((_list)==((void*)(NULL))){
  2854. _list=se_ma94(1,
  2855. (C)->_last_expression/*97*/);
  2856. }
  2857. else{
  2858. X94add_last(_list,(C)->_last_expression/*97*/);
  2859. }
  2860. /*FI]*/
  2861. C->_ok=r51skip1(C,'\54');
  2862. }
  2863. /*[IF*/
  2864. if(!(r51skip2(C,'\76','\76'))){
  2865. r51fcp(C,((T0*)ms51_57753));
  2866. }
  2867. /*FI]*/
  2868. {T93*n=malloc(sizeof(*n));
  2869. *n=M93;
  2870. r93make(n,_sp,_list);
  2871. C->_last_expression=(T0*)n;
  2872. }
  2873. }
  2874. else{
  2875. R=r51a_e0(C);
  2876. }
  2877. /*FI]*/
  2878. return R;
  2879. }
  2880. /*No:EIFFEL_PARSER.em8*/
  2881. /*No:EIFFEL_PARSER.em9*/
  2882.  
  2883.  
  2884. T6 r51a_feature_name_list(T51* C){
  2885. T6 R=0;
  2886. T2 _state=0;
  2887. C->_last_feature_name_list=NULL;
  2888. while (!((_state)>=(3))) {
  2889. {int z1=_state;
  2890.  
  2891. if((0==z1)){
  2892. /*[IF*/
  2893. if(r51a_feature_name(C)){
  2894. {T67*n=malloc(sizeof(*n));
  2895. *n=M67;
  2896. /*[IRF3.3make_1*/((((T67*)(n)))->_first)=((C)->_last_feature_name/*105*/);
  2897. /*]*/
  2898. C->_last_feature_name_list=(T0*)n;
  2899. }
  2900. R=1;
  2901. _state=1;
  2902. }
  2903.  else if(((C)->_cc/*24*/)==('\54')){
  2904. /*[IRF3.6wcp*/{T51* C1=C;
  2905. T0* b1=((T0*)ms51_48195);
  2906. r51warning(r51current_position(C1),b1);
  2907. }/*]*/
  2908. C->_ok=r51skip1(C,'\54');
  2909. }
  2910. else{
  2911. _state=3;
  2912. }
  2913. /*FI]*/
  2914. }
  2915.  else 
  2916. if((1==z1)){
  2917. /*[IF*/
  2918. if(((C)->_cc/*24*/)==('\54')){
  2919. C->_ok=r51skip1(C,'\54');
  2920. _state=2;
  2921. }
  2922.  else if(r51a_feature_name(C)){
  2923. r51warning(X65start_position((C)->_last_feature_name/*105*/),((T0*)ms51_9410));
  2924. r67add_last((T67*)((C)->_last_feature_name_list/*109*/),(C)->_last_feature_name/*105*/);
  2925. }
  2926. else{
  2927. _state=3;
  2928. }
  2929. /*FI]*/
  2930. }
  2931.  else {/*[IF*/
  2932. if(r51a_feature_name(C)){
  2933. r67add_last((T67*)((C)->_last_feature_name_list/*109*/),(C)->_last_feature_name/*105*/);
  2934. _state=1;
  2935. }
  2936.  else if(((C)->_cc/*24*/)==('\54')){
  2937. /*[IRF3.6wcp*/{T51* C1=C;
  2938. T0* b1=((T0*)ms51_26277);
  2939. r51warning(r51current_position(C1),b1);
  2940. }/*]*/
  2941. C->_ok=r51skip1(C,'\54');
  2942. }
  2943. else{
  2944. /*[IRF3.6ecp*/{T51* C1=C;
  2945. T0* b1=((T0*)ms51_33616);
  2946. r51error(r51current_position(C1),b1);
  2947. }/*]*/
  2948. _state=3;
  2949. }
  2950. /*FI]*/
  2951. }}
  2952. }
  2953. return R;
  2954. }
  2955.  
  2956.  
  2957. T6 r51a_type(T51* C){
  2958. T6 R=0;
  2959. T0* _argument_name2=NULL;
  2960. T0* _sp=NULL;
  2961. R=1;
  2962. /*[IF*/
  2963. if(r51a_keyword(C,((T0*)ms12_1724))){
  2964. {T39*n=malloc(sizeof(*n));
  2965. *n=M39;
  2966. r39make(n,(C)->_start_line/*169*/,(C)->_start_column/*165*/);
  2967. _sp=(T0*)n;
  2968. }
  2969. /*[IF*/
  2970. if(r51a_infix(C)){
  2971. {T239*n=malloc(sizeof(*n));
  2972. *n=M239;
  2973. r239make(n,_sp,(C)->_last_infix/*121*/);
  2974. C->_last_type=(T0*)n;
  2975. }
  2976. }
  2977.  else if(r51a_prefix(C)){
  2978. {T239*n=malloc(sizeof(*n));
  2979. *n=M239;
  2980. r239make(n,_sp,(C)->_last_prefix/*125*/);
  2981. C->_last_type=(T0*)n;
  2982. }
  2983. }
  2984.  else if(r51a_identifier(C)){
  2985. /*[IF*/
  2986. if(r51a_current(C)){
  2987. {T241*n=malloc(sizeof(*n));
  2988. *n=M241;
  2989. /*[IRF3.3make*/((((T241*)(n)))->_start_position)=(_sp);
  2990. /*]*/
  2991. C->_last_type=(T0*)n;
  2992. }
  2993. }
  2994.  else if(r51a_argument(C)){
  2995. _argument_name2=(C)->_last_expression/*97*/;
  2996. if(NULL!=(_argument_name2))switch(((T0*)_argument_name2)->id) {
  2997. case 172: 
  2998. break;
  2999. default:
  3000. _argument_name2=NULL;
  3001. };{T242*n=malloc(sizeof(*n));
  3002. *n=M242;
  3003. r242make(n,_sp,_argument_name2);
  3004. C->_last_type=(T0*)n;
  3005. }
  3006. }
  3007. else{
  3008. {T239*n=malloc(sizeof(*n));
  3009. *n=M239;
  3010. r239make(n,_sp,r92to_simple_feature_name((T92*)(oBC51tmp_name)));
  3011. C->_last_type=(T0*)n;
  3012. }
  3013. }
  3014. /*FI]*/
  3015. }
  3016. else{
  3017. r51fcp(C,((T0*)ms51_350632));
  3018. }
  3019. /*FI]*/
  3020. }
  3021.  else if(r51a_keyword(C,((T0*)ms12_10840))){
  3022. {T39*n=malloc(sizeof(*n));
  3023. *n=M39;
  3024. r39make(n,(C)->_start_line/*169*/,(C)->_start_column/*165*/);
  3025. _sp=(T0*)n;
  3026. }
  3027. /*[IF*/
  3028. if(r51a_class_type(C)){
  3029. {T259*n=malloc(sizeof(*n));
  3030. *n=M259;
  3031. r259make(n,_sp,(C)->_last_class_type/*93*/);
  3032. C->_last_type=(T0*)n;
  3033. }
  3034. }
  3035. else{
  3036. r51fcp(C,((T0*)ms51_92480));
  3037. }
  3038. /*FI]*/
  3039. }
  3040.  else if(r51a_keyword(C,((T0*)ms13_687))){
  3041. {T39*n=malloc(sizeof(*n));
  3042. *n=M39;
  3043. r39make(n,(C)->_start_line/*169*/,(C)->_start_column/*165*/);
  3044. _sp=(T0*)n;
  3045. }
  3046. /*[IF*/
  3047. if(r51a_integer(C)){
  3048. {T260*n=malloc(sizeof(*n));
  3049. *n=M260;
  3050. r260make(n,_sp,(C)->_last_integer_constant/*129*/);
  3051. C->_last_type=(T0*)n;
  3052. }
  3053. }
  3054.  else if(r51a_identifier(C)){
  3055. {T262*n=malloc(sizeof(*n));
  3056. *n=M262;
  3057. r262make(n,_sp,r92to_simple_feature_name((T92*)(oBC51tmp_name)));
  3058. C->_last_type=(T0*)n;
  3059. }
  3060. }
  3061. else{
  3062. r51fcp(C,((T0*)ms51_116370));
  3063. }
  3064. /*FI]*/
  3065. }
  3066.  else if(r51a_type_formal_generic(C)){
  3067. C->_last_type=(C)->_last_type_formal_generic/*117*/;
  3068. }
  3069.  else if(r51a_class_type(C)){
  3070. C->_last_type=(C)->_last_class_type/*93*/;
  3071. }
  3072. else{
  3073. R=0;
  3074. }
  3075. /*FI]*/
  3076. return R;
  3077. }
  3078. /*No:EIFFEL_PARSER.fz_rename*/
  3079. /*No:EIFFEL_PARSER.fz_rescue*/
  3080.  
  3081.  
  3082. T0* r51a_routine(T51* C){
  3083. T0* R=NULL;
  3084. T0* _ea=NULL;
  3085. T0* _al=NULL;
  3086. T0* _hc=NULL;
  3087. T0* _sp=NULL;
  3088. /*[IF*/
  3089. if(r51a_keyword(C,((T0*)ms12_10928))){
  3090. /*[IF*/
  3091. if(r51a_manifest_string(C)){
  3092. /*[IRF3.3set_obsolete_mark*/((((T182*)((T182*)(oBC51tmp_feature))))->_obsolete_mark)=((C)->_last_manifest_string/*145*/);
  3093. /*]*/
  3094. }
  3095. else{
  3096. r51fcp(C,((T0*)ms51_71060));
  3097. }
  3098. /*FI]*/
  3099. }
  3100. /*FI]*/
  3101. /*[IRF3.3set_header_comment*/((((T182*)((T182*)(oBC51tmp_feature))))->_header_comment)=(r51get_comments(C));
  3102. /*]*/
  3103. /*[IF*/
  3104. if(r51a_keyword(C,((T0*)ms12_8904))){
  3105. {T39*n=malloc(sizeof(*n));
  3106. *n=M39;
  3107. r39make(n,(C)->_start_line/*169*/,(C)->_start_column/*165*/);
  3108. _sp=(T0*)n;
  3109. }
  3110. /*[IF*/
  3111. if(r51a_keyword(C,((T0*)ms12_1740))){
  3112. _hc=r51get_comments(C);
  3113. r182set_require_else((T182*)(oBC51tmp_feature),_sp,_hc,r51a_assertion(C));
  3114. }
  3115. else{
  3116. _hc=r51get_comments(C);
  3117. r182set_require((T182*)(oBC51tmp_feature),_sp,_hc,r51a_assertion(C));
  3118. }
  3119. /*FI]*/
  3120. }
  3121. /*FI]*/
  3122. /*[IF*/
  3123. if(r51a_keyword(C,((T0*)ms12_2690a))){
  3124. r51a_local_var_list(C);
  3125. }
  3126. /*FI]*/
  3127. R=r51a_routine_body(C);
  3128. /*[IF*/
  3129. if(r51a_keyword(C,((T0*)ms12_7068))){
  3130. {T39*n=malloc(sizeof(*n));
  3131. *n=M39;
  3132. r39make(n,(C)->_start_line/*169*/,(C)->_start_column/*165*/);
  3133. _sp=(T0*)n;
  3134. }
  3135. C->_in_ensure=1;
  3136. /*[IF*/
  3137. if(r51a_keyword(C,((T0*)ms12_1764))){
  3138. _hc=r51get_comments(C);
  3139. _al=r51a_assertion(C);
  3140. /*[IF*/
  3141. if(((_hc)!=((void*)(NULL)))||((_al)!=((void*)(NULL)))){
  3142. {T199*n=malloc(sizeof(*n));
  3143. *n=M199;
  3144. r199make(n,_sp,_hc,_al);
  3145. _ea=(T0*)n;
  3146. }
  3147. /*[IRF3.3set_ensure_then*/((((T199*)(((T199*)_ea))))->_is_ensure_then)=(1);
  3148. /*]*/
  3149. }
  3150. /*FI]*/
  3151. X198set_ensure_assertion(R,_ea);
  3152. }
  3153. else{
  3154. _hc=r51get_comments(C);
  3155. _al=r51a_assertion(C);
  3156. /*[IF*/
  3157. if(((_hc)!=((void*)(NULL)))||((_al)!=((void*)(NULL)))){
  3158. {T199*n=malloc(sizeof(*n));
  3159. *n=M199;
  3160. r199make(n,_sp,_hc,_al);
  3161. _ea=(T0*)n;
  3162. }
  3163. }
  3164. /*FI]*/
  3165. X198set_ensure_assertion(R,_ea);
  3166. }
  3167. /*FI]*/
  3168. C->_in_ensure=0;
  3169. }
  3170. /*FI]*/
  3171. /*[IF*/
  3172. if(r51a_keyword(C,((T0*)ms12_7002))){
  3173. C->_in_rescue=1;
  3174. X198set_rescue_compound(R,r51a_compound2(C,((T0*)ms12_7002),((T0*)ms12_951)));
  3175. C->_in_rescue=0;
  3176. }
  3177. else{
  3178. /*[IF*/
  3179. if(!(r51a_keyword(C,((T0*)ms12_951)))){
  3180. /*[IRF3.6wcp*/{T51* C1=C;
  3181. T0* b1=((T0*)ms51_72240);
  3182. r51warning(r51current_position(C1),b1);
  3183. }/*]*/
  3184. }
  3185. /*FI]*/
  3186. }
  3187. /*FI]*/
  3188. C->_local_vars=NULL;
  3189. return R;
  3190. }
  3191.  
  3192.  
  3193. T6 r51a_creation(T51* C){
  3194. T6 R=0;
  3195. T2 _state=0;
  3196. T0* _call=NULL;
  3197. T0* _proc_name=NULL;
  3198. T0* _writable=NULL;
  3199. T0* _type=NULL;
  3200. T0* _sp=NULL;
  3201. while (!((_state)>(6))) {
  3202. {int z1=_state;
  3203.  
  3204. if((0==z1)){
  3205. /*[IF*/
  3206. if(r51skip1(C,'\41')){
  3207. {T39*n=malloc(sizeof(*n));
  3208. *n=M39;
  3209. r39make(n,(C)->_start_line/*169*/,(C)->_start_column/*165*/);
  3210. _sp=(T0*)n;
  3211. }
  3212. _state=1;
  3213. }
  3214. else{
  3215. _state=7;
  3216. }
  3217. /*FI]*/
  3218. }
  3219.  else 
  3220. if((1==z1)){
  3221. /*[IF*/
  3222. if(r51a_type(C)){
  3223. _type=(C)->_last_type/*157*/;
  3224. /*[IF*/
  3225. if(X62is_anchored(_type)){
  3226. r51warning(X62start_position(_type),((T0*)ms51_136367));
  3227. }
  3228. /*FI]*/
  3229. _state=2;
  3230. }
  3231.  else if(r51skip1(C,'\41')){
  3232. _state=3;
  3233. }
  3234. else{
  3235. r51fcp(C,((T0*)ms51_74340));
  3236. _state=8;
  3237. }
  3238. /*FI]*/
  3239. }
  3240.  else 
  3241. if((2==z1)){
  3242. /*[IF*/
  3243. if(r51skip1(C,'\41')){
  3244. _state=3;
  3245. }
  3246. else{
  3247. _state=8;
  3248. r51fcp(C,((T0*)ms51_47516));
  3249. }
  3250. /*FI]*/
  3251. }
  3252.  else 
  3253. if((3==z1)){
  3254. /*[IF*/
  3255. if(r51a_identifier(C)){
  3256. /*[IF*/
  3257. if(r51a_current(C)){
  3258. _state=8;
  3259. r51error(X89start_position((C)->_last_expression/*97*/),((T0*)ms51_74830));
  3260. }
  3261.  else if(r51a_argument(C)){
  3262. _state=8;
  3263. r51error(X89start_position((C)->_last_expression/*97*/),((T0*)ms51_112905));
  3264. }
  3265.  else if((r51a_result(C))||(r51a_local_variable(C))){
  3266. _writable=(C)->_last_expression/*97*/;
  3267. _state=4;
  3268. }
  3269. else{
  3270. _writable=r92to_simple_feature_name((T92*)(oBC51tmp_name));
  3271. _state=4;
  3272. }
  3273. /*FI]*/
  3274. }
  3275. else{
  3276. _state=8;
  3277. r51fcp(C,((T0*)ms51_63591));
  3278. }
  3279. /*FI]*/
  3280. }
  3281.  else 
  3282. if((4==z1)){
  3283. /*[IF*/
  3284. if(r51skip1unless2(C,'\56','\56')){
  3285. _state=5;
  3286. }
  3287. else{
  3288. _state=7;
  3289. }
  3290. /*FI]*/
  3291. }
  3292.  else 
  3293. if((5==z1)){
  3294. /*[IF*/
  3295. if(r51a_identifier(C)){
  3296. _proc_name=r92to_simple_feature_name((T92*)(oBC51tmp_name));
  3297. _state=6;
  3298. }
  3299. else{
  3300. _state=8;
  3301. r51fcp(C,((T0*)ms51_85917));
  3302. }
  3303. /*FI]*/
  3304. }
  3305.  else{/*[IF*/
  3306. if(((C)->_cc/*24*/)==('\50')){
  3307. _call=r51to_proc_call(C,_writable,_proc_name,r51a_actuals(C));
  3308. }
  3309. else{
  3310. {T146*n=malloc(sizeof(*n));
  3311. *n=M146;
  3312. r146make(n,_writable,_proc_name);
  3313. _call=(T0*)n;
  3314. }
  3315. }
  3316. /*FI]*/
  3317. _state=7;
  3318. }}
  3319. }
  3320. /*[IF*/
  3321. if(((_state)==(7))&&((_sp)!=((void*)(NULL)))){
  3322. R=1;
  3323. /*[IF*/
  3324. if(((_type)==((void*)(NULL)))&&((_call)==((void*)(NULL)))){
  3325. {T231*n=malloc(sizeof(*n));
  3326. *n=M231;
  3327. r231make(n,_sp,_writable);
  3328. C->_last_instruction=(T0*)n;
  3329. }
  3330. }
  3331.  else if(((_type)!=((void*)(NULL)))&&((_call)==((void*)(NULL)))){
  3332. {T234*n=malloc(sizeof(*n));
  3333. *n=M234;
  3334. r234make(n,_sp,_type,_writable);
  3335. C->_last_instruction=(T0*)n;
  3336. }
  3337. }
  3338.  else if(((_type)==((void*)(NULL)))&&((_call)!=((void*)(NULL)))){
  3339. {T236*n=malloc(sizeof(*n));
  3340. *n=M236;
  3341. r236make(n,_sp,_writable,_call);
  3342. C->_last_instruction=(T0*)n;
  3343. }
  3344. }
  3345. else{
  3346. {T238*n=malloc(sizeof(*n));
  3347. *n=M238;
  3348. r238make(n,_sp,_type,_writable,_call);
  3349. C->_last_instruction=(T0*)n;
  3350. }
  3351. }
  3352. /*FI]*/
  3353. }
  3354. /*FI]*/
  3355. return R;
  3356. }
  3357.  
  3358.  
  3359. T6 r51a_real(T51* C){
  3360. T6 R=0;
  3361. T2 _c=0;
  3362. T2 _l=0;
  3363. T2 _state=0;
  3364. /*[IF*/
  3365. if((r3is_digit((C)->_cc/*24*/))||(((C)->_cc/*24*/)==('\56'))){
  3366. _l=(C)->_line/*16*/;
  3367. _c=(C)->_column/*12*/;
  3368. /*[IRF3.3clear*/((((T7*)((T7*)(oBC51tmp_string))))->_count)=(0);
  3369. /*]*/
  3370. /*[IF*/
  3371. if(((C)->_cc/*24*/)==('\56')){
  3372. r7append((T7*)(oBC51tmp_string),((T0*)ms12_194));
  3373. _state=5;
  3374. }
  3375. else{
  3376. r7extend((T7*)(oBC51tmp_string),(C)->_cc/*24*/);
  3377. }
  3378. /*FI]*/
  3379. while (!((_state)>(11))) {
  3380. r51next_char(C);
  3381. {int z1=_state;
  3382.  
  3383. if((0==z1)){
  3384. {int z2=(C)->_cc/*24*/;
  3385.  
  3386. if(((48<=z2)&&(z2<=57))){
  3387. r7extend((T7*)(oBC51tmp_string),(C)->_cc/*24*/);
  3388. }
  3389.  else 
  3390. if((46==z2)){
  3391. r7extend((T7*)(oBC51tmp_string),'\56');
  3392. _state=4;
  3393. }
  3394.  else{_state=13;
  3395. }}
  3396. }
  3397.  else 
  3398. if((1==z1)){
  3399. {int z2=(C)->_cc/*24*/;
  3400.  
  3401. if(((48<=z2)&&(z2<=57))){
  3402. r7extend((T7*)(oBC51tmp_string),(C)->_cc/*24*/);
  3403. _state=2;
  3404. }
  3405.  else{r51fcp(C,((T0*)ms51_98851));
  3406. }}
  3407. }
  3408.  else 
  3409. if((2==z1)){
  3410. {int z2=(C)->_cc/*24*/;
  3411.  
  3412. if(((48<=z2)&&(z2<=57))){
  3413. r7extend((T7*)(oBC51tmp_string),(C)->_cc/*24*/);
  3414. _state=3;
  3415. }
  3416.  else{r51fcp(C,((T0*)ms51_98851));
  3417. }}
  3418. }
  3419.  else 
  3420. if((3==z1)){
  3421. {int z2=(C)->_cc/*24*/;
  3422.  
  3423. if(((48<=z2)&&(z2<=57))){
  3424. r7extend((T7*)(oBC51tmp_string),(C)->_cc/*24*/);
  3425. _state=0;
  3426. }
  3427.  else{r51fcp(C,((T0*)ms51_98851));
  3428. }}
  3429. }
  3430.  else 
  3431. if((4==z1)){
  3432. {int z2=(C)->_cc/*24*/;
  3433.  
  3434. if(((48<=z2)&&(z2<=57))){
  3435. r7extend((T7*)(oBC51tmp_string),(C)->_cc/*24*/);
  3436. _state=6;
  3437. }
  3438.  else 
  3439. if((69==z2)||(101==z2)){
  3440. r7extend((T7*)(oBC51tmp_string),'E');
  3441. _state=10;
  3442. }
  3443.  else{_state=12;
  3444. }}
  3445. }
  3446.  else 
  3447. if((5==z1)){
  3448. {int z2=(C)->_cc/*24*/;
  3449.  
  3450. if(((48<=z2)&&(z2<=57))){
  3451. r7extend((T7*)(oBC51tmp_string),(C)->_cc/*24*/);
  3452. _state=6;
  3453. }
  3454.  else{_state=13;
  3455. }}
  3456. }
  3457.  else 
  3458. if((6==z1)){
  3459. {int z2=(C)->_cc/*24*/;
  3460.  
  3461. if(((48<=z2)&&(z2<=57))){
  3462. r7extend((T7*)(oBC51tmp_string),(C)->_cc/*24*/);
  3463. }
  3464.  else 
  3465. if((69==z2)||(101==z2)){
  3466. r7extend((T7*)(oBC51tmp_string),'E');
  3467. _state=10;
  3468. }
  3469.  else 
  3470. if((95==z2)){
  3471. _state=7;
  3472. }
  3473.  else{_state=12;
  3474. }}
  3475. }
  3476.  else 
  3477. if((7==z1)){
  3478. {int z2=(C)->_cc/*24*/;
  3479.  
  3480. if(((48<=z2)&&(z2<=57))){
  3481. r7extend((T7*)(oBC51tmp_string),(C)->_cc/*24*/);
  3482. _state=8;
  3483. }
  3484.  else{r51fcp(C,((T0*)ms51_146421));
  3485. }}
  3486. }
  3487.  else 
  3488. if((8==z1)){
  3489. {int z2=(C)->_cc/*24*/;
  3490.  
  3491. if(((48<=z2)&&(z2<=57))){
  3492. r7extend((T7*)(oBC51tmp_string),(C)->_cc/*24*/);
  3493. _state=9;
  3494. }
  3495.  else{r51fcp(C,((T0*)ms51_146421));
  3496. }}
  3497. }
  3498.  else 
  3499. if((9==z1)){
  3500. {int z2=(C)->_cc/*24*/;
  3501.  
  3502. if(((48<=z2)&&(z2<=57))){
  3503. r7extend((T7*)(oBC51tmp_string),(C)->_cc/*24*/);
  3504. _state=6;
  3505. }
  3506.  else{r51fcp(C,((T0*)ms51_146421));
  3507. }}
  3508. }
  3509.  else 
  3510. if((10==z1)){
  3511. {int z2=(C)->_cc/*24*/;
  3512.  
  3513. if((43==z2)){
  3514. _state=11;
  3515. }
  3516.  else 
  3517. if((45==z2)){
  3518. r7extend((T7*)(oBC51tmp_string),'\55');
  3519. _state=11;
  3520. }
  3521.  else 
  3522. if(((48<=z2)&&(z2<=57))){
  3523. r7extend((T7*)(oBC51tmp_string),(C)->_cc/*24*/);
  3524. _state=11;
  3525. }
  3526.  else{r51fcp(C,((T0*)ms51_71434));
  3527. _state=13;
  3528. }}
  3529. }
  3530.  else{{int z2=(C)->_cc/*24*/;
  3531.  
  3532. if(((48<=z2)&&(z2<=57))){
  3533. r7extend((T7*)(oBC51tmp_string),(C)->_cc/*24*/);
  3534. }
  3535.  else{_state=12;
  3536. }}
  3537. }}
  3538. }
  3539. /*[IF*/
  3540. if((_state)==(12)){
  3541. {T157*n=malloc(sizeof(*n));
  3542. *n=M157;
  3543. r157make(n,r51pos(_l,_c),r7twin((T7*)(oBC51tmp_string)));
  3544. C->_last_real_constant=(T0*)n;
  3545. }
  3546. R=1;
  3547. r51skip_comments(C);
  3548. }
  3549. else{
  3550. r51go_back_at(C,_l,_c);
  3551. }
  3552. /*FI]*/
  3553. }
  3554. /*FI]*/
  3555. return R;
  3556. }
  3557. /*No:EIFFEL_PARSER.fz_elseif*/
  3558.  
  3559.  
  3560. void r51a_assignment_aux(T51* C,T6 a1){
  3561. T0* _rhs=NULL;
  3562. T0* _writable=NULL;
  3563. /*[IF*/
  3564. if(r51a_current(C)){
  3565. r37add_position(X89start_position((C)->_last_expression/*97*/));
  3566. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms51_43368);
  3567. r37fatal_error((T37*)(oBC11eh),b1);
  3568. }/*]*/
  3569. }
  3570.  else if(r51a_void(C)){
  3571. r37add_position(r92start_position((T92*)(oBC51tmp_name)));
  3572. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms51_35190);
  3573. r37fatal_error((T37*)(oBC11eh),b1);
  3574. }/*]*/
  3575. }
  3576.  else if(r51a_argument(C)){
  3577. r37add_position(X89start_position((C)->_last_expression/*97*/));
  3578. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms51_69224);
  3579. r37fatal_error((T37*)(oBC11eh),b1);
  3580. }/*]*/
  3581. }
  3582. else{
  3583. /*[IF*/
  3584. if(r92is_result()){
  3585. _writable=r51last_result(C);
  3586. }
  3587.  else if(r51a_local_variable(C)){
  3588. _writable=(C)->_last_expression/*97*/;
  3589. }
  3590. else{
  3591. _writable=r92to_simple_feature_name((T92*)(oBC51tmp_name));
  3592. }
  3593. /*FI]*/
  3594. /*[IF*/
  3595. if(r51a_expression(C)){
  3596. _rhs=(C)->_last_expression/*97*/;
  3597. /*[IF*/
  3598. if(a1){
  3599. {T267*n=malloc(sizeof(*n));
  3600. *n=M267;
  3601. r267make(n,_writable,_rhs);
  3602. C->_last_instruction=(T0*)n;
  3603. }
  3604. }
  3605. else{
  3606. {T268*n=malloc(sizeof(*n));
  3607. *n=M268;
  3608. r268make(n,_writable,_rhs);
  3609. C->_last_instruction=(T0*)n;
  3610. }
  3611. }
  3612. /*FI]*/
  3613. }
  3614. else{
  3615. r51fcp(C,((T0*)ms51_146421a));
  3616. }
  3617. /*FI]*/
  3618. }
  3619. /*FI]*/
  3620. }
  3621. /*No:EIFFEL_PARSER.us_double*/
  3622.  
  3623.  
  3624. T0* r51a_external(T51* C){
  3625. T0* R=NULL;
  3626. T0* _l=NULL;
  3627. /*[IF*/
  3628. if(((C)->_cc/*24*/)!=('\42')){
  3629. /*[IRF3.6wcp*/{T51* C1=C;
  3630. T0* b1=((T0*)ms51_14027a);
  3631. r51warning(r51current_position(C1),b1);
  3632. }/*]*/
  3633. }
  3634. else{
  3635. C->_ok=r51skip1(C,'\42');
  3636. }
  3637. /*FI]*/
  3638. /*[IF*/
  3639. if(r51a_keyword(C,((T0*)ms12_18788))){
  3640. {T277*n=malloc(sizeof(*n));
  3641. *n=M277;
  3642. _l=(T0*)n;
  3643. }
  3644. }
  3645.  else if(r51a_keyword(C,((T0*)ms12_25909))){
  3646. {T278*n=malloc(sizeof(*n));
  3647. *n=M278;
  3648. _l=(T0*)n;
  3649. }
  3650. }
  3651.  else if(r51a_keyword(C,((T0*)ms12_50768))){
  3652. {T280*n=malloc(sizeof(*n));
  3653. *n=M280;
  3654. _l=(T0*)n;
  3655. }
  3656. }
  3657.  else if(r51a_keyword(C,((T0*)ms12_37456))){
  3658. {T281*n=malloc(sizeof(*n));
  3659. *n=M281;
  3660. _l=(T0*)n;
  3661. }
  3662. }
  3663.  else if(r51a_keyword(C,((T0*)ms12_66440))){
  3664. {T282*n=malloc(sizeof(*n));
  3665. *n=M282;
  3666. _l=(T0*)n;
  3667. }
  3668. }
  3669.  else if(r51a_keyword(C,((T0*)ms51_675))){
  3670. {T277*n=malloc(sizeof(*n));
  3671. *n=M277;
  3672. _l=(T0*)n;
  3673. }
  3674. r51wcpefnc(C,((T0*)ms51_675a),((T0*)ms12_18788));
  3675. }
  3676.  else if(r51a_keyword(C,((T0*)ms51_681))){
  3677. {T278*n=malloc(sizeof(*n));
  3678. *n=M278;
  3679. _l=(T0*)n;
  3680. }
  3681. r51wcpefnc(C,((T0*)ms51_681a),((T0*)ms12_25909));
  3682. }
  3683.  else if(r51a_keyword(C,((T0*)ms51_1216))){
  3684. {T280*n=malloc(sizeof(*n));
  3685. *n=M280;
  3686. _l=(T0*)n;
  3687. }
  3688. r51wcpefnc(C,((T0*)ms51_1216a),((T0*)ms12_50768));
  3689. }
  3690.  else if(r51a_keyword(C,((T0*)ms51_68))){
  3691. {T281*n=malloc(sizeof(*n));
  3692. *n=M281;
  3693. _l=(T0*)n;
  3694. }
  3695. }
  3696.  else if(r51a_keyword(C,((T0*)ms51_286))){
  3697. {T282*n=malloc(sizeof(*n));
  3698. *n=M282;
  3699. _l=(T0*)n;
  3700. }
  3701. r51wcpefnc(C,((T0*)ms51_286a),((T0*)ms12_66440));
  3702. }
  3703.  else if(r51a_keyword(C,((T0*)ms12_32576))){
  3704. {T283*n=malloc(sizeof(*n));
  3705. *n=M283;
  3706. _l=(T0*)n;
  3707. }
  3708. }
  3709.  else if(r51a_keyword(C,((T0*)ms12_38896))){
  3710. {T285*n=malloc(sizeof(*n));
  3711. *n=M285;
  3712. _l=(T0*)n;
  3713. }
  3714. }
  3715. else{
  3716. r51fcp(C,((T0*)ms51_1422390));
  3717. }
  3718. /*FI]*/
  3719. /*[IF*/
  3720. if(((C)->_cc/*24*/)!=('\42')){
  3721. /*[IRF3.6wcp*/{T51* C1=C;
  3722. T0* b1=((T0*)ms51_14027a);
  3723. r51warning(r51current_position(C1),b1);
  3724. }/*]*/
  3725. }
  3726. else{
  3727. C->_ok=r51skip1(C,'\42');
  3728. }
  3729. /*FI]*/
  3730. R=r182to_external_routine((T182*)(oBC51tmp_feature),_l,r51a_alias(C));
  3731. return R;
  3732. }
  3733. /*No:EIFFEL_PARSER.fz_creation*/
  3734.  
  3735.  
  3736. T6 r51a_debug(T51* C){
  3737. T6 R=0;
  3738. T0* _e_debug=NULL;
  3739. T0* _list=NULL;
  3740. T0* _sp=NULL;
  3741. /*[IF*/
  3742. if(r51a_keyword(C,((T0*)ms12_2670))){
  3743. {T39*n=malloc(sizeof(*n));
  3744. *n=M39;
  3745. r39make(n,(C)->_start_line/*169*/,(C)->_start_column/*165*/);
  3746. _sp=(T0*)n;
  3747. }
  3748. /*[IF*/
  3749. if(r51skip1(C,'\50')){
  3750. while (!(!(r51a_manifest_string(C)))) {
  3751. /*[IF*/
  3752. if((_list)==((void*)(NULL))){
  3753. _list=se_ma205(1,
  3754. (C)->_last_manifest_string/*145*/);
  3755. }
  3756. else{
  3757. r205add_last(((T205*)_list),(C)->_last_manifest_string/*145*/);
  3758. }
  3759. /*FI]*/
  3760. C->_ok=r51skip1(C,'\54');
  3761. }
  3762. /*[IF*/
  3763. if((_list)==((void*)(NULL))){
  3764. /*[IRF3.6wcp*/{T51* C1=C;
  3765. T0* b1=((T0*)ms51_61008);
  3766. r51warning(r51current_position(C1),b1);
  3767. }/*]*/
  3768. }
  3769. /*FI]*/
  3770. /*[IF*/
  3771. if(!(r51skip1(C,'\51'))){
  3772. r51fcp(C,((T0*)ms51_76190));
  3773. }
  3774. /*FI]*/
  3775. }
  3776. /*FI]*/
  3777. R=1;
  3778. {T204*n=malloc(sizeof(*n));
  3779. *n=M204;
  3780. r204make(n,_sp,_list,r51a_compound2(C,((T0*)ms51_2670),((T0*)ms12_951)));
  3781. _e_debug=(T0*)n;
  3782. }
  3783. C->_last_instruction=_e_debug;
  3784. }
  3785. /*FI]*/
  3786. return R;
  3787. }
  3788.  
  3789.  
  3790. T6 r51a_parent(T51* C){
  3791. T6 R=0;
  3792. /*[IF*/
  3793. if(r51a_class_type(C)){
  3794. R=1;
  3795. {T60*n=malloc(sizeof(*n));
  3796. *n=M60;
  3797. r60make(n,(C)->_last_class_type/*93*/);
  3798. C->_last_parent=(T0*)n;
  3799. }
  3800. /*[IF*/
  3801. if(r51a_keyword(C,((T0*)ms12_6912))){
  3802. r51a_rename_list(C);
  3803. /*[IF*/
  3804. if(((C)->_cc/*24*/)==('\73')){
  3805. /*[IRF3.6wcp*/{T51* C1=C;
  3806. T0* b1=((T0*)ms51_71638);
  3807. r51warning(r51current_position(C1),b1);
  3808. }/*]*/
  3809. C->_ok=r51skip1(C,'\73');
  3810. }
  3811. /*FI]*/
  3812. }
  3813. /*FI]*/
  3814. r51a_new_export_list(C);
  3815. /*[IF*/
  3816. if(r51a_keyword(C,((T0*)ms12_10824))){
  3817. /*[IF*/
  3818. if(r51a_feature_name_list(C)){
  3819. /*[IRF3.3set_undefine*/((((T60*)((T60*)((C)->_last_parent/*149*/))))->_undefine_list)=((C)->_last_feature_name_list/*109*/);
  3820. /*]*/
  3821. }
  3822. /*FI]*/
  3823. }
  3824. /*FI]*/
  3825. /*[IF*/
  3826. if(r51a_keyword(C,((T0*)ms12_10728))){
  3827. /*[IF*/
  3828. if(r51a_feature_name_list(C)){
  3829. /*[IRF3.3set_redefine*/((((T60*)((T60*)((C)->_last_parent/*149*/))))->_redefine_list)=((C)->_last_feature_name_list/*109*/);
  3830. /*]*/
  3831. }
  3832. /*FI]*/
  3833. }
  3834. /*FI]*/
  3835. /*[IF*/
  3836. if(r51a_keyword(C,((T0*)ms12_7410))){
  3837. /*[IF*/
  3838. if(r51a_feature_name_list(C)){
  3839. /*[IRF3.3set_select*/((((T60*)((T60*)((C)->_last_parent/*149*/))))->_select_list)=((C)->_last_feature_name_list/*109*/);
  3840. /*]*/
  3841. }
  3842. /*FI]*/
  3843. }
  3844. /*FI]*/
  3845. /*[IF*/
  3846. if(((((r51a_keyword(C,((T0*)ms12_6912)))||(r51a_keyword(C,((T0*)ms12_7614))))||(r51a_keyword(C,((T0*)ms12_10824))))||(r51a_keyword(C,((T0*)ms12_10728))))||(r51a_keyword(C,((T0*)ms12_7410)))){
  3847. r37add_position(r51pos((C)->_start_line/*169*/,(C)->_start_column/*165*/));
  3848. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms51_667805);
  3849. r37fatal_error((T37*)(oBC11eh),b1);
  3850. }/*]*/
  3851. }
  3852. /*FI]*/
  3853. C->_ok=r51a_keyword(C,((T0*)ms12_951));
  3854. }
  3855. /*FI]*/
  3856. return R;
  3857. }
  3858. /*No:EIFFEL_PARSER.fz_desc*/
  3859.  
  3860.  
  3861. T6 r51a_bit_constant(T51* C){
  3862. T6 R=0;
  3863. T2 _state=0;
  3864. T2 _c=0;
  3865. T2 _l=0;
  3866. /*[IF*/
  3867. if((((C)->_cc/*24*/)==('0'))||(((C)->_cc/*24*/)==('1'))){
  3868. _l=(C)->_line/*16*/;
  3869. _c=(C)->_column/*12*/;
  3870. /*[IRF3.3clear*/((((T7*)((T7*)(oBC51tmp_string))))->_count)=(0);
  3871. /*]*/
  3872. r7extend((T7*)(oBC51tmp_string),(C)->_cc/*24*/);
  3873. while (!((_state)>(0))) {
  3874. r51next_char(C);
  3875. {int z1=(C)->_cc/*24*/;
  3876.  
  3877. if(((48<=z1)&&(z1<=49))){
  3878. r7extend((T7*)(oBC51tmp_string),(C)->_cc/*24*/);
  3879. }
  3880.  else 
  3881. if((66==z1)||(98==z1)){
  3882. {T156*n=malloc(sizeof(*n));
  3883. *n=M156;
  3884. r156make(n,r51pos(_l,_c),r7twin((T7*)(oBC51tmp_string)));
  3885. C->_last_bit_constant=(T0*)n;
  3886. }
  3887. r51next_char(C);
  3888. r51skip_comments(C);
  3889. _state=1;
  3890. R=1;
  3891. }
  3892.  else{r51go_back_at(C,_l,_c);
  3893. _state=2;
  3894. }}
  3895. }
  3896. }
  3897. /*FI]*/
  3898. return R;
  3899. }
  3900. /*No:EIFFEL_PARSER.us_and_then*/
  3901. /*No:EIFFEL_PARSER.fz_alias*/
  3902.  
  3903.  
  3904. void r51a_formal_generic_list(T51* C){
  3905. T2 _state=0;
  3906. T0* _list=NULL;
  3907. T0* _fga=NULL;
  3908. T0* _constraint=NULL;
  3909. T0* _name=NULL;
  3910. T0* _sp=NULL;
  3911. C->_formal_generic_list=NULL;
  3912. while (!((_state)>(4))) {
  3913. {int z1=_state;
  3914.  
  3915. if((0==z1)){
  3916. /*[IF*/
  3917. if(r51skip1(C,'\133')){
  3918. {T39*n=malloc(sizeof(*n));
  3919. *n=M39;
  3920. r39make(n,(C)->_start_line/*169*/,(C)->_start_column/*165*/);
  3921. _sp=(T0*)n;
  3922. }
  3923. _state=1;
  3924. }
  3925. else{
  3926. _state=5;
  3927. }
  3928. /*FI]*/
  3929. }
  3930.  else 
  3931. if((1==z1)){
  3932. /*[IF*/
  3933. if(r51a_base_class_name(C)){
  3934. _name=(C)->_last_class_name/*89*/;
  3935. _state=2;
  3936. }
  3937. else{
  3938. _state=6;
  3939. }
  3940. /*FI]*/
  3941. }
  3942.  else 
  3943. if((2==z1)){
  3944. /*[IF*/
  3945. if(r51skip2(C,'\55','\76')){
  3946. _state=4;
  3947. }
  3948.  else if((((C)->_cc/*24*/)==('\54'))||(((C)->_cc/*24*/)==('\135'))){
  3949. {T263*n=malloc(sizeof(*n));
  3950. *n=M263;
  3951. r263make(n,_name,_constraint);
  3952. _fga=(T0*)n;
  3953. }
  3954. _name=NULL;
  3955. _constraint=NULL;
  3956. /*[IF*/
  3957. if((_list)==((void*)(NULL))){
  3958. _list=se_ma264(1,
  3959. _fga);
  3960. }
  3961. else{
  3962. r264add_last(((T264*)_list),_fga);
  3963. }
  3964. /*FI]*/
  3965. _fga=NULL;
  3966. /*[IF*/
  3967. if(r51skip1(C,'\54')){
  3968. _state=1;
  3969. }
  3970. else{
  3971. C->_ok=r51skip1(C,'\135');
  3972. _state=5;
  3973. }
  3974. /*FI]*/
  3975. }
  3976. else{
  3977. _state=6;
  3978. }
  3979. /*FI]*/
  3980. }
  3981.  else 
  3982. if((3==z1)){
  3983. /*[IF*/
  3984. if((((C)->_cc/*24*/)==('\54'))||(((C)->_cc/*24*/)==('\135'))){
  3985. {T263*n=malloc(sizeof(*n));
  3986. *n=M263;
  3987. r263make(n,_name,_constraint);
  3988. _fga=(T0*)n;
  3989. }
  3990. _name=NULL;
  3991. _constraint=NULL;
  3992. /*[IF*/
  3993. if((_list)==((void*)(NULL))){
  3994. _list=se_ma264(1,
  3995. _fga);
  3996. }
  3997. else{
  3998. r264add_last(((T264*)_list),_fga);
  3999. }
  4000. /*FI]*/
  4001. _fga=NULL;
  4002. /*[IF*/
  4003. if(r51skip1(C,'\54')){
  4004. _state=1;
  4005. }
  4006. else{
  4007. C->_ok=r51skip1(C,'\135');
  4008. _state=5;
  4009. }
  4010. /*FI]*/
  4011. }
  4012. else{
  4013. _state=6;
  4014. }
  4015. /*FI]*/
  4016. }
  4017.  else{/*[IF*/
  4018. if(r51a_class_type(C)){
  4019. _constraint=(C)->_last_class_type/*93*/;
  4020. _state=3;
  4021. }
  4022. else{
  4023. r51fcp(C,((T0*)ms51_60760));
  4024. _state=6;
  4025. }
  4026. /*FI]*/
  4027. }}
  4028. }
  4029. /*[IF*/
  4030. if((_state)==(6)){
  4031. }
  4032.  else if(((_sp)!=((void*)(NULL)))&&((_list)==((void*)(NULL)))){
  4033. r51warning(_sp,((T0*)ms51_79128a));
  4034. }
  4035.  else if((_sp)!=((void*)(NULL))){
  4036. {T76*n=malloc(sizeof(*n));
  4037. *n=M76;
  4038. r76make(n,_sp,_list);
  4039. C->_formal_generic_list=(T0*)n;
  4040. }
  4041. /*[IRF3.3set_formal_generic_list*/((((T41*)((T41*)((C)->_last_base_class/*65*/))))->_formal_generic_list)=((C)->_formal_generic_list/*37*/);
  4042. /*]*/
  4043. }
  4044. /*FI]*/
  4045. }
  4046. /*No:EIFFEL_PARSER.fz_class*/
  4047. /*No:EIFFEL_PARSER.fz_prefix*/
  4048. /*No:EIFFEL_PARSER.fz_strip*/
  4049. /*No:EIFFEL_PARSER.fz_unique*/
  4050.  
  4051.  
  4052. T6 r51skip1unless2(T51* C,T3 a1,T3 a2){
  4053. T6 R=0;
  4054. C->_start_line=(C)->_line/*16*/;
  4055. C->_start_column=(C)->_column/*12*/;
  4056. /*[IF*/
  4057. if(((C)->_cc/*24*/)==(a1)){
  4058. r51next_char(C);
  4059. /*[IF*/
  4060. if(((C)->_cc/*24*/)==(a2)){
  4061. r51prev_char(C);
  4062. }
  4063. else{
  4064. R=1;
  4065. r51skip_comments(C);
  4066. }
  4067. /*FI]*/
  4068. }
  4069. /*FI]*/
  4070. return R;
  4071. }
  4072. /*No:EIFFEL_PARSER.ecp*/
  4073.  
  4074.  
  4075. void r51fcp(T51* C,T0* a1){
  4076. r37add_position(r51current_position(C));
  4077. /*[IRF3.6fatal_error*/{T0* b1=a1;
  4078. r37fatal_error((T37*)(oBC11eh),b1);
  4079. }/*]*/
  4080. }
  4081.  
  4082.  
  4083. T0* r51a_compound1(T51* C){
  4084. T0* R=NULL;
  4085. T0* _remainder=NULL;
  4086. T0* _first_one=NULL;
  4087. T0* _instruction=NULL;
  4088. T0* _hc=NULL;
  4089. _hc=r51get_comments(C);
  4090. while (!(((C)->_cc/*24*/)!=('\73'))) {
  4091. /*[IRF3.6wcp*/{T51* C1=C;
  4092. T0* b1=((T0*)ms12_41475);
  4093. r51warning(r51current_position(C1),b1);
  4094. }/*]*/
  4095. C->_ok=r51skip1(C,'\73');
  4096. }
  4097. while (!((!(r51a_instruction(C)))||((/*(IRF4.9nb_errors*/((T37*)(oBC11eh))->_nb_errors/*4*//*)*/)>(0)))) {
  4098. _instruction=(C)->_last_instruction/*133*/;
  4099. /*[IF*/
  4100. if(((C)->_cc/*24*/)==('\50')){
  4101. /*[IRF3.6wcp*/{T51* C1=C;
  4102. T0* b1=((T0*)ms51_9410a);
  4103. r51warning(r51current_position(C1),b1);
  4104. }/*]*/
  4105. }
  4106. /*FI]*/
  4107. C->_ok=r51skip1(C,'\73');
  4108. while (!(((C)->_cc/*24*/)!=('\73'))) {
  4109. /*[IRF3.6wcp*/{T51* C1=C;
  4110. T0* b1=((T0*)ms12_41475);
  4111. r51warning(r51current_position(C1),b1);
  4112. }/*]*/
  4113. C->_ok=r51skip1(C,'\73');
  4114. }
  4115. /*[IF*/
  4116. if((/*(IRF4.9nb_errors*/((T37*)(oBC11eh))->_nb_errors/*4*//*)*/)==(0)){
  4117. _instruction=X144add_comment(_instruction,r51get_comments(C));
  4118. /*[IF*/
  4119. if((_first_one)==((void*)(NULL))){
  4120. _first_one=_instruction;
  4121. }
  4122. else{
  4123. /*[IF*/
  4124. if((_remainder)==((void*)(NULL))){
  4125. {T201*n=malloc(sizeof(*n));
  4126. *n=M201;
  4127. r201with_capacity(n,4);
  4128. _remainder=(T0*)n;
  4129. }
  4130. }
  4131. /*FI]*/
  4132. r201add_last(((T201*)_remainder),_instruction);
  4133. }
  4134. /*FI]*/
  4135. }
  4136. /*FI]*/
  4137. }
  4138. /*[IF*/
  4139. if(((_hc)!=((void*)(NULL)))||((_first_one)!=((void*)(NULL)))){
  4140. {T200*n=malloc(sizeof(*n));
  4141. *n=M200;
  4142. r200make(n,_hc,_first_one,_remainder);
  4143. R=(T0*)n;
  4144. }
  4145. }
  4146. /*FI]*/
  4147. return R;
  4148. }
  4149.  
  4150.  
  4151. T6 r51a_result(T51* C){
  4152. T6 R=0;
  4153. /*[IF*/
  4154. if(r92is_result()){
  4155. C->_last_expression=r51last_result(C);
  4156. R=1;
  4157. }
  4158. /*FI]*/
  4159. return R;
  4160. }
  4161. /*No:EIFFEL_PARSER.fz_all*/
  4162.  
  4163.  
  4164. T6 r51skip1(T51* C,T3 a1){
  4165. T6 R=0;
  4166. /*[IF*/
  4167. if((a1)==((C)->_cc/*24*/)){
  4168. C->_start_line=(C)->_line/*16*/;
  4169. C->_start_column=(C)->_column/*12*/;
  4170. R=1;
  4171. r51next_char(C);
  4172. r51skip_comments(C);
  4173. }
  4174. /*FI]*/
  4175. return R;
  4176. }
  4177. T0*oBC51lcs=NULL;
  4178.  
  4179.  
  4180. T6 r51skip2(T51* C,T3 a1,T3 a2){
  4181. T6 R=0;
  4182. /*[IF*/
  4183. if((a1)==((C)->_cc/*24*/)){
  4184. C->_start_line=(C)->_line/*16*/;
  4185. C->_start_column=(C)->_column/*12*/;
  4186. r51next_char(C);
  4187. /*[IF*/
  4188. if((a2)==((C)->_cc/*24*/)){
  4189. R=1;
  4190. r51next_char(C);
  4191. r51skip_comments(C);
  4192. }
  4193. else{
  4194. r51prev_char(C);
  4195. }
  4196. /*FI]*/
  4197. }
  4198. /*FI]*/
  4199. return R;
  4200. }
  4201. /*No:EIFFEL_PARSER.last_keyword*/
  4202.  
  4203.  
  4204. T6 r51a_boolean_constant(T51* C){
  4205. T6 R=0;
  4206. /*[IF*/
  4207. if(r51a_keyword(C,((T0*)ms12_1832))){
  4208. {T151*n=malloc(sizeof(*n));
  4209. *n=M151;
  4210. /*[IRF3.3make*/((((T151*)(n)))->_start_position)=(r51pos((C)->_start_line/*169*/,(C)->_start_column/*165*/));
  4211. /*]*/
  4212. C->_last_boolean_constant=(T0*)n;
  4213. }
  4214. R=1;
  4215. }
  4216.  else if(r51a_keyword(C,((T0*)ms12_2690))){
  4217. {T152*n=malloc(sizeof(*n));
  4218. *n=M152;
  4219. /*[IRF3.3make*/((((T152*)(n)))->_start_position)=(r51pos((C)->_start_line/*169*/,(C)->_start_column/*165*/));
  4220. /*]*/
  4221. C->_last_boolean_constant=(T0*)n;
  4222. }
  4223. R=1;
  4224. }
  4225. /*FI]*/
  4226. return R;
  4227. }
  4228.  
  4229.  
  4230. T6 r51a_index_clause(T51* C){
  4231. T6 R=0;
  4232. T0* _index_clause=NULL;
  4233. /*[IF*/
  4234. if(r51a_identifier(C)){
  4235. R=1;
  4236. /*[IF*/
  4237. if(r51skip1(C,'\72')){
  4238. {T305*n=malloc(sizeof(*n));
  4239. *n=M305;
  4240. /*[IRF3.3with_tag*/((((T305*)(n)))->_tag)=(r92to_string((T92*)(oBC51tmp_name)));
  4241. /*]*/
  4242. _index_clause=(T0*)n;
  4243. }
  4244. /*[IF*/
  4245. if(r51a_index_value(C)){
  4246. r305add_last(((T305*)_index_clause),(C)->_last_index_value/*137*/);
  4247. }
  4248. else{
  4249. r51fcp(C,((T0*)ms51_86146));
  4250. }
  4251. /*FI]*/
  4252. }
  4253. else{
  4254. {T305*n=malloc(sizeof(*n));
  4255. *n=M305;
  4256. /*[IRF3.6without_tag*/{T305* C1=n;
  4257. T0* b1=r92to_simple_feature_name((T92*)(oBC51tmp_name));
  4258. r305add_last(C1,b1);
  4259. }/*]*/
  4260. _index_clause=(T0*)n;
  4261. }
  4262. }
  4263. /*FI]*/
  4264. }
  4265.  else if(r51a_manifest_constant(C)){
  4266. R=1;
  4267. {T305*n=malloc(sizeof(*n));
  4268. *n=M305;
  4269. /*[IRF3.6without_tag*/{T305* C1=n;
  4270. T0* b1=(C)->_last_manifest_constant/*141*/;
  4271. r305add_last(C1,b1);
  4272. }/*]*/
  4273. _index_clause=(T0*)n;
  4274. }
  4275. }
  4276. /*FI]*/
  4277. /*[IF*/
  4278. if(R){
  4279. while (!(!(r51skip1(C,'\54')))) {
  4280. /*[IF*/
  4281. if(r51a_index_value(C)){
  4282. r305add_last(((T305*)_index_clause),(C)->_last_index_value/*137*/);
  4283. }
  4284. else{
  4285. r51fcp(C,((T0*)ms51_86146));
  4286. }
  4287. /*FI]*/
  4288. }
  4289. r41add_index_clause((T41*)((C)->_last_base_class/*65*/),_index_clause);
  4290. }
  4291. /*FI]*/
  4292. return R;
  4293. }
  4294.  
  4295.  
  4296. T6 r51a_instruction(T51* C){
  4297. T6 R=0;
  4298. R=(((((((r51a_check(C))||(r51a_debug(C)))||(r51a_conditional(C)))||(r51a_retry(C)))||(r51a_inspect(C)))||(r51a_loop(C)))||(r51a_creation(C)))||(r51a_assignment_or_call(C));
  4299. return R;
  4300. }
  4301.  
  4302.  
  4303. void r51wcpefnc(T51* C,T0* a1,T0* a2){
  4304. /*[IRF3.6append*/{T0* b1=((T0*)ms51_44280);
  4305. r7append((T7*)(oBC37explanation),b1);
  4306. }/*]*/
  4307. /*[IRF3.6append*/{T0* b1=a1;
  4308. r7append((T7*)(oBC37explanation),b1);
  4309. }/*]*/
  4310. /*[IRF3.6append*/{T0* b1=((T0*)ms51_6730);
  4311. r7append((T7*)(oBC37explanation),b1);
  4312. }/*]*/
  4313. /*[IRF3.6append*/{T0* b1=a2;
  4314. r7append((T7*)(oBC37explanation),b1);
  4315. }/*]*/
  4316. /*[IRF3.6wcp*/{T51* C1=C;
  4317. T0* b1=((T0*)ms51_94878);
  4318. r51warning(r51current_position(C1),b1);
  4319. }/*]*/
  4320. }
  4321. /*No:EIFFEL_PARSER.wcp*/
  4322. /*No:EIFFEL_PARSER.last_type_formal_generic*/
  4323.  
  4324.  
  4325. T6 r51a_base_type(T51* C){
  4326. T6 R=0;
  4327. T0* _sp=NULL;
  4328. R=1;
  4329. /*[IF*/
  4330. if(r51a_keyword(C,((T0*)ms13_714))){
  4331. {T243*n=malloc(sizeof(*n));
  4332. *n=M243;
  4333. r243make(n,r51pos((C)->_start_line/*169*/,(C)->_start_column/*165*/));
  4334. C->_last_base_type=(T0*)n;
  4335. }
  4336. }
  4337.  else if(r51a_keyword(C,((T0*)ms13_1990))){
  4338. {T39*n=malloc(sizeof(*n));
  4339. *n=M39;
  4340. r39make(n,(C)->_start_line/*169*/,(C)->_start_column/*165*/);
  4341. _sp=(T0*)n;
  4342. }
  4343. /*[IF*/
  4344. if(((r51skip1(C,'\133'))&&(r51a_type(C)))&&(r51skip1(C,'\135'))){
  4345. {T244*n=malloc(sizeof(*n));
  4346. *n=M244;
  4347. r244make(n,_sp,(C)->_last_type/*157*/);
  4348. C->_last_base_type=(T0*)n;
  4349. }
  4350. }
  4351. else{
  4352. r51fcp(C,((T0*)ms51_64185));
  4353. }
  4354. /*FI]*/
  4355. }
  4356.  else if(r51a_keyword(C,((T0*)ms13_17628))){
  4357. {T39*n=malloc(sizeof(*n));
  4358. *n=M39;
  4359. r39make(n,(C)->_start_line/*169*/,(C)->_start_column/*165*/);
  4360. _sp=(T0*)n;
  4361. }
  4362. /*[IF*/
  4363. if(((r51skip1(C,'\133'))&&(r51a_type(C)))&&(r51skip1(C,'\135'))){
  4364. {T247*n=malloc(sizeof(*n));
  4365. *n=M247;
  4366. r247make(n,_sp,(C)->_last_type/*157*/);
  4367. C->_last_base_type=(T0*)n;
  4368. }
  4369. }
  4370. else{
  4371. r51fcp(C,((T0*)ms51_90680));
  4372. }
  4373. /*FI]*/
  4374. }
  4375.  else if(r51a_keyword(C,((T0*)ms51_7203))){
  4376. {T39*n=malloc(sizeof(*n));
  4377. *n=M39;
  4378. r39make(n,(C)->_start_line/*169*/,(C)->_start_column/*165*/);
  4379. _sp=(T0*)n;
  4380. }
  4381. /*[IF*/
  4382. if(((r51skip1(C,'\133'))&&(r51a_type(C)))&&(r51skip1(C,'\135'))){
  4383. {T247*n=malloc(sizeof(*n));
  4384. *n=M247;
  4385. r247make(n,_sp,(C)->_last_type/*157*/);
  4386. C->_last_base_type=(T0*)n;
  4387. }
  4388. }
  4389. else{
  4390. r51fcp(C,((T0*)ms51_71295));
  4391. }
  4392. /*FI]*/
  4393. r51warning(_sp,((T0*)ms51_151262));
  4394. }
  4395.  else if(r51a_keyword(C,((T0*)ms13_6510))){
  4396. {T248*n=malloc(sizeof(*n));
  4397. *n=M248;
  4398. r248make(n,r51pos((C)->_start_line/*169*/,(C)->_start_column/*165*/));
  4399. C->_last_base_type=(T0*)n;
  4400. }
  4401. }
  4402.  else if(r51a_keyword(C,((T0*)ms13_9936))){
  4403. {T250*n=malloc(sizeof(*n));
  4404. *n=M250;
  4405. r250make(n,r51pos((C)->_start_line/*169*/,(C)->_start_column/*165*/));
  4406. C->_last_base_type=(T0*)n;
  4407. }
  4408. }
  4409.  else if(r51a_keyword(C,((T0*)ms13_4818))){
  4410. {T251*n=malloc(sizeof(*n));
  4411. *n=M251;
  4412. r251make(n,r51pos((C)->_start_line/*169*/,(C)->_start_column/*165*/));
  4413. C->_last_base_type=(T0*)n;
  4414. }
  4415. }
  4416.  else if(r51a_keyword(C,((T0*)ms13_6748))){
  4417. {T252*n=malloc(sizeof(*n));
  4418. *n=M252;
  4419. r252make(n,r51pos((C)->_start_line/*169*/,(C)->_start_column/*165*/));
  4420. C->_last_base_type=(T0*)n;
  4421. }
  4422. }
  4423.  else if(r51a_keyword(C,((T0*)ms13_1256))){
  4424. {T253*n=malloc(sizeof(*n));
  4425. *n=M253;
  4426. r253make(n,r51pos((C)->_start_line/*169*/,(C)->_start_column/*165*/));
  4427. C->_last_base_type=(T0*)n;
  4428. }
  4429. }
  4430.  else if(r51a_keyword(C,((T0*)ms13_6881))){
  4431. {T254*n=malloc(sizeof(*n));
  4432. *n=M254;
  4433. r254make(n,r51pos((C)->_start_line/*169*/,(C)->_start_column/*165*/));
  4434. C->_last_base_type=(T0*)n;
  4435. }
  4436. }
  4437.  else if(r51a_keyword(C,((T0*)ms13_1208))){
  4438. {T255*n=malloc(sizeof(*n));
  4439. *n=M255;
  4440. r255make(n,r51pos((C)->_start_line/*169*/,(C)->_start_column/*165*/));
  4441. C->_last_base_type=(T0*)n;
  4442. }
  4443. }
  4444.  else if(r51a_keyword(C,((T0*)ms13_5046))){
  4445. {T256*n=malloc(sizeof(*n));
  4446. *n=M256;
  4447. r256make(n,r51pos((C)->_start_line/*169*/,(C)->_start_column/*165*/));
  4448. C->_last_base_type=(T0*)n;
  4449. }
  4450. }
  4451. else{
  4452. R=0;
  4453. }
  4454. /*FI]*/
  4455. return R;
  4456. }
  4457.  
  4458.  
  4459. void r51a_procedure_call(T51* C){
  4460. T0* _implicit_current=NULL;
  4461. T0* _sfn=NULL;
  4462. _sfn=r92to_simple_feature_name((T92*)(oBC51tmp_name));
  4463. {T177*n=malloc(sizeof(*n));
  4464. *n=M177;
  4465. /*[IRF3.3make*/((((T177*)(n)))->_start_position)=((((T131*)_sfn))->_start_position/*8*/);
  4466. /*]*/
  4467. _implicit_current=(T0*)n;
  4468. }
  4469. r51a_r10(C,1,_implicit_current,_sfn,r51a_actuals(C));
  4470. }
  4471.  
  4472.  
  4473. T0* r51pos(T2 a1,T2 a2){
  4474. T0* R=NULL;
  4475. {T39*n=malloc(sizeof(*n));
  4476. *n=M39;
  4477. r39make(n,a1,a2);
  4478. R=(T0*)n;
  4479. }
  4480. return R;
  4481. }
  4482.  
  4483.  
  4484. void r51show_nb(T2 a1,T0* a2){
  4485. /*[IF*/
  4486. if((a1)>(0)){
  4487. r33w_put_string(((T0*)ms12_3143));
  4488. r33w_put_integer(a1);
  4489. r33w_put_string(a2);
  4490. }
  4491. /*FI]*/
  4492. }
  4493. /*No:EIFFEL_PARSER.fz_error_stars*/
  4494. /*No:EIFFEL_PARSER.us_minus*/
  4495.  
  4496.  
  4497. T6 r51a_identifier(T51* C){
  4498. T6 R=0;
  4499. /*[IF*/
  4500. if((C)->_case_insensitive/*0*/){
  4501. R=r51a_identifier1(C);
  4502. }
  4503. else{
  4504. R=r51a_identifier2(C);
  4505. }
  4506. /*FI]*/
  4507. return R;
  4508. }
  4509. /*No:EIFFEL_PARSER.fz_else*/
  4510.  
  4511.  
  4512. T0* r51a_compound2(T51* C,T0* a1,T0* a2){
  4513. T0* R=NULL;
  4514. T0* _remainder=NULL;
  4515. T0* _first_one=NULL;
  4516. T0* _instruction=NULL;
  4517. T0* _hc=NULL;
  4518. _hc=r51get_comments(C);
  4519. while (!(((C)->_cc/*24*/)!=('\73'))) {
  4520. /*[IRF3.6wcp*/{T51* C1=C;
  4521. T0* b1=((T0*)ms12_41475);
  4522. r51warning(r51current_position(C1),b1);
  4523. }/*]*/
  4524. C->_ok=r51skip1(C,'\73');
  4525. }
  4526. while (!((!(r51a_instruction(C)))||((/*(IRF4.9nb_errors*/((T37*)(oBC11eh))->_nb_errors/*4*//*)*/)>(0)))) {
  4527. _instruction=(C)->_last_instruction/*133*/;
  4528. /*[IF*/
  4529. if(((C)->_cc/*24*/)==('\50')){
  4530. /*[IRF3.6wcp*/{T51* C1=C;
  4531. T0* b1=((T0*)ms51_9410a);
  4532. r51warning(r51current_position(C1),b1);
  4533. }/*]*/
  4534. }
  4535. /*FI]*/
  4536. C->_ok=r51skip1(C,'\73');
  4537. while (!(((C)->_cc/*24*/)!=('\73'))) {
  4538. /*[IRF3.6wcp*/{T51* C1=C;
  4539. T0* b1=((T0*)ms12_41475);
  4540. r51warning(r51current_position(C1),b1);
  4541. }/*]*/
  4542. C->_ok=r51skip1(C,'\73');
  4543. }
  4544. /*[IF*/
  4545. if((/*(IRF4.9nb_errors*/((T37*)(oBC11eh))->_nb_errors/*4*//*)*/)==(0)){
  4546. _instruction=X144add_comment(_instruction,r51get_comments(C));
  4547. /*[IF*/
  4548. if((_first_one)==((void*)(NULL))){
  4549. _first_one=_instruction;
  4550. }
  4551. else{
  4552. /*[IF*/
  4553. if((_remainder)==((void*)(NULL))){
  4554. {T201*n=malloc(sizeof(*n));
  4555. *n=M201;
  4556. r201with_capacity(n,4);
  4557. _remainder=(T0*)n;
  4558. }
  4559. }
  4560. /*FI]*/
  4561. r201add_last(((T201*)_remainder),_instruction);
  4562. }
  4563. /*FI]*/
  4564. }
  4565. /*FI]*/
  4566. }
  4567. /*[IF*/
  4568. if(!(r51a_keyword(C,a2))){
  4569. /*[IRF3.6append*/{T0* b1=((T0*)ms51_12480);
  4570. r7append((T7*)(oBC37explanation),b1);
  4571. }/*]*/
  4572. /*[IRF3.6append*/{T0* b1=a1;
  4573. r7append((T7*)(oBC37explanation),b1);
  4574. }/*]*/
  4575. /*[IRF3.6append*/{T0* b1=((T0*)ms51_33345);
  4576. r7append((T7*)(oBC37explanation),b1);
  4577. }/*]*/
  4578. /*[IRF3.6append*/{T0* b1=a2;
  4579. r7append((T7*)(oBC37explanation),b1);
  4580. }/*]*/
  4581. r51fcp(C,((T0*)ms51_10120a));
  4582. }
  4583. /*FI]*/
  4584. /*[IF*/
  4585. if(((_hc)!=((void*)(NULL)))||((_first_one)!=((void*)(NULL)))){
  4586. {T200*n=malloc(sizeof(*n));
  4587. *n=M200;
  4588. r200make(n,_hc,_first_one,_remainder);
  4589. R=(T0*)n;
  4590. }
  4591. }
  4592. /*FI]*/
  4593. return R;
  4594. }
  4595. /*No:EIFFEL_PARSER.fz_deferred*/
  4596. /*No:EIFFEL_PARSER.fz_like*/
  4597.  
  4598.  
  4599. T6 r51a_loop(T51* C){
  4600. T6 R=0;
  4601. T0* _al=NULL;
  4602. T0* _hc=NULL;
  4603. T0* _lb=NULL;
  4604. T0* _ue=NULL;
  4605. T0* _vc=NULL;
  4606. T0* _ic=NULL;
  4607. T0* _i=NULL;
  4608. T0* _e_loop=NULL;
  4609. T2 _c2=0;
  4610. T2 _l2=0;
  4611. T2 _c1=0;
  4612. T2 _l1=0;
  4613. /*[IF*/
  4614. if(r51a_keyword(C,((T0*)ms12_1784))){
  4615. R=1;
  4616. _l1=(C)->_start_line/*169*/;
  4617. _c1=(C)->_start_column/*165*/;
  4618. _i=r51a_compound1(C);
  4619. /*[IF*/
  4620. if(r51a_keyword(C,((T0*)ms12_14427))){
  4621. _l2=(C)->_start_line/*169*/;
  4622. _c2=(C)->_start_column/*165*/;
  4623. _hc=r51get_comments(C);
  4624. _al=r51a_assertion(C);
  4625. /*[IF*/
  4626. if(((_hc)!=((void*)(NULL)))||((_al)!=((void*)(NULL)))){
  4627. {T227*n=malloc(sizeof(*n));
  4628. *n=M227;
  4629. r227make(n,r51pos(_l2,_c2),_hc,_al);
  4630. _ic=(T0*)n;
  4631. }
  4632. }
  4633. /*FI]*/
  4634. }
  4635. /*FI]*/
  4636. /*[IF*/
  4637. if(r51a_keyword(C,((T0*)ms12_9506))){
  4638. /*[IF*/
  4639. if((r51a_tag_mark(C))&&(r51a_expression(C))){
  4640. {T229*n=malloc(sizeof(*n));
  4641. *n=M229;
  4642. r229make(n,(C)->_last_tag_mark/*161*/,(C)->_last_expression/*97*/,r51get_comments(C));
  4643. _vc=(T0*)n;
  4644. }
  4645. }
  4646.  else if(r51a_expression(C)){
  4647. {T230*n=malloc(sizeof(*n));
  4648. *n=M230;
  4649. r230make(n,(C)->_last_expression/*97*/,r51get_comments(C));
  4650. _vc=(T0*)n;
  4651. }
  4652. }
  4653. else{
  4654. /*[IRF3.6wcp*/{T51* C1=C;
  4655. T0* b1=((T0*)ms51_85956);
  4656. r51warning(r51current_position(C1),b1);
  4657. }/*]*/
  4658. }
  4659. /*FI]*/
  4660. }
  4661. /*FI]*/
  4662. /*[IF*/
  4663. if(r51a_keyword(C,((T0*)ms12_2855))){
  4664. /*[IF*/
  4665. if(r51a_expression(C)){
  4666. _ue=X89add_comment((C)->_last_expression/*97*/,r51get_comments(C));
  4667. }
  4668. else{
  4669. r51fcp(C,((T0*)ms51_78048));
  4670. _ue=(C)->_last_expression/*97*/;
  4671. }
  4672. /*FI]*/
  4673. }
  4674. else{
  4675. r51fcp(C,((T0*)ms51_83028));
  4676. _ue=(C)->_last_expression/*97*/;
  4677. }
  4678. /*FI]*/
  4679. /*[IF*/
  4680. if(((C)->_cc/*24*/)==('\73')){
  4681. /*[IRF3.6wcp*/{T51* C1=C;
  4682. T0* b1=((T0*)ms12_41475);
  4683. r51warning(r51current_position(C1),b1);
  4684. }/*]*/
  4685. C->_ok=r51skip1(C,'\73');
  4686. }
  4687. /*FI]*/
  4688. /*[IF*/
  4689. if(!(r51a_keyword(C,((T0*)ms12_1808)))){
  4690. /*[IRF3.6wcp*/{T51* C1=C;
  4691. T0* b1=((T0*)ms51_79128);
  4692. r51warning(r51current_position(C1),b1);
  4693. }/*]*/
  4694. }
  4695. /*FI]*/
  4696. _lb=r51a_compound2(C,((T0*)ms51_14202),((T0*)ms12_951));
  4697. {T228*n=malloc(sizeof(*n));
  4698. *n=M228;
  4699. r228make(n,r51pos(_l1,_c1),_i,_ic,_vc,_ue,_lb);
  4700. _e_loop=(T0*)n;
  4701. }
  4702. C->_last_instruction=_e_loop;
  4703. }
  4704. /*FI]*/
  4705. return R;
  4706. }
  4707.  
  4708.  
  4709. T6 r51a_base_class_name(T51* C){
  4710. T6 R=0;
  4711. T6 _do_warning=0;
  4712. T2 _state=0;
  4713. /*[IF*/
  4714. if(r3is_letter((C)->_cc/*24*/)){
  4715. /*[IF*/
  4716. if((((unsigned)((C)->_cc/*24*/))>=((unsigned)('a')))){
  4717. _do_warning=1;
  4718. C->_cc=r3to_upper((C)->_cc/*24*/);
  4719. }
  4720. /*FI]*/
  4721. r92initialize((T92*)(oBC51tmp_name),(C)->_line/*16*/,(C)->_column/*12*/);
  4722. /*[IRF3.6extend*/{T3 b1=(C)->_cc/*24*/;
  4723. r7extend((T7*)(oBC92tmp_string),b1);
  4724. }/*]*/
  4725. while (!((_state)>(0))) {
  4726. r51next_char(C);
  4727. {int z1=(C)->_cc/*24*/;
  4728.  
  4729. if(((48<=z1)&&(z1<=57))||((65<=z1)&&(z1<=90))||(95==z1)){
  4730. /*[IRF3.6extend*/{T3 b1=(C)->_cc/*24*/;
  4731. r7extend((T7*)(oBC92tmp_string),b1);
  4732. }/*]*/
  4733. }
  4734.  else 
  4735. if(((97<=z1)&&(z1<=122))){
  4736. _do_warning=1;
  4737. /*[IRF3.6extend*/{T3 b1=r3to_upper((C)->_cc/*24*/);
  4738. r7extend((T7*)(oBC92tmp_string),b1);
  4739. }/*]*/
  4740. }
  4741.  else{_state=1;
  4742. }}
  4743. }
  4744. /*[IF*/
  4745. if(r92isa_keyword()){
  4746. _state=/*(IRF4.9count*/((T7*)(oBC92tmp_string))->_count/*4*//*)*/;
  4747. while (!((_state)==(0))) {
  4748. _state=(_state)-(1);
  4749. r51prev_char(C);
  4750. }
  4751. }
  4752. else{
  4753. R=1;
  4754. r51skip_comments(C);
  4755. /*[IF*/
  4756. if(_do_warning){
  4757. r51warning(r92start_position((T92*)(oBC51tmp_name)),((T0*)ms51_116415));
  4758. }
  4759. /*FI]*/
  4760. C->_last_class_name=r92to_class_name((T92*)(oBC51tmp_name));
  4761. }
  4762. /*FI]*/
  4763. }
  4764. /*FI]*/
  4765. return R;
  4766. }
  4767.  
  4768.  
  4769. T6 r51a_manifest_constant(T51* C){
  4770. T6 R=0;
  4771. /*[IF*/
  4772. if(r51a_boolean_constant(C)){
  4773. C->_last_manifest_constant=(C)->_last_boolean_constant/*81*/;
  4774. R=1;
  4775. }
  4776.  else if(r51a_character_constant(C)){
  4777. C->_last_manifest_constant=(C)->_last_character_constant/*85*/;
  4778. R=1;
  4779. }
  4780.  else if(r51a_manifest_string(C)){
  4781. C->_last_manifest_constant=(C)->_last_manifest_string/*145*/;
  4782. R=1;
  4783. }
  4784.  else if(r51a_bit_constant(C)){
  4785. C->_last_manifest_constant=(C)->_last_bit_constant/*77*/;
  4786. R=1;
  4787. }
  4788.  else if(r51a_real_constant(C)){
  4789. C->_last_manifest_constant=(C)->_last_real_constant/*153*/;
  4790. R=1;
  4791. }
  4792.  else if(r51a_integer_constant(C)){
  4793. C->_last_manifest_constant=(C)->_last_integer_constant/*129*/;
  4794. R=1;
  4795. }
  4796. /*FI]*/
  4797. return R;
  4798. }
  4799.  
  4800.  
  4801. T6 r51a_identifier1(T51* C){
  4802. T6 R=0;
  4803. T2 _state=0;
  4804. /*[IF*/
  4805. if(r3is_letter((C)->_cc/*24*/)){
  4806. r92initialize((T92*)(oBC51tmp_name),(C)->_line/*16*/,(C)->_column/*12*/);
  4807. /*[IRF3.6extend*/{T3 b1=r3to_lower((C)->_cc/*24*/);
  4808. r7extend((T7*)(oBC92tmp_string),b1);
  4809. }/*]*/
  4810. while (!((_state)>(0))) {
  4811. r51next_char(C);
  4812. {int z1=(C)->_cc/*24*/;
  4813.  
  4814. if(((48<=z1)&&(z1<=57))||(95==z1)||((97<=z1)&&(z1<=122))){
  4815. /*[IRF3.6extend*/{T3 b1=(C)->_cc/*24*/;
  4816. r7extend((T7*)(oBC92tmp_string),b1);
  4817. }/*]*/
  4818. }
  4819.  else 
  4820. if(((65<=z1)&&(z1<=90))){
  4821. /*[IRF3.6extend*/{T3 b1=r3to_lower((C)->_cc/*24*/);
  4822. r7extend((T7*)(oBC92tmp_string),b1);
  4823. }/*]*/
  4824. }
  4825.  else{_state=1;
  4826. }}
  4827. }
  4828. /*[IF*/
  4829. if(r92isa_keyword()){
  4830. _state=/*(IRF4.9count*/((T7*)(oBC92tmp_string))->_count/*4*//*)*/;
  4831. while (!((_state)==(0))) {
  4832. _state=(_state)-(1);
  4833. r51prev_char(C);
  4834. }
  4835. }
  4836. else{
  4837. R=1;
  4838. r51skip_comments(C);
  4839. }
  4840. /*FI]*/
  4841. }
  4842. /*FI]*/
  4843. return R;
  4844. }
  4845.  
  4846.  
  4847. void r51a_formal_arg_list(T51* C){
  4848. T2 _state=0;
  4849. T0* _list=NULL;
  4850. T0* _declaration=NULL;
  4851. T0* _name_list=NULL;
  4852. T0* _name=NULL;
  4853. T6 _started=0;
  4854. C->_arguments=NULL;
  4855. while (!((_state)>(5))) {
  4856. {int z1=_state;
  4857.  
  4858. if((0==z1)){
  4859. /*[IF*/
  4860. if(r51skip1(C,'\50')){
  4861. _started=1;
  4862. _state=1;
  4863. }
  4864. else{
  4865. _state=6;
  4866. }
  4867. /*FI]*/
  4868. }
  4869.  else 
  4870. if((1==z1)){
  4871. /*[IF*/
  4872. if(r51a_identifier(C)){
  4873. _name=r92to_argument_name1((T92*)(oBC51tmp_name));
  4874. _state=2;
  4875. }
  4876.  else if(r51skip1(C,'\51')){
  4877. _state=6;
  4878. }
  4879. else{
  4880. _state=7;
  4881. }
  4882. /*FI]*/
  4883. }
  4884.  else 
  4885. if((2==z1)){
  4886. /*[IF*/
  4887. if(r51skip1(C,'\72')){
  4888. /*[IF*/
  4889. if((_name_list)!=((void*)(NULL))){
  4890. r175add_last(((T175*)_name_list),_name);
  4891. _name=NULL;
  4892. }
  4893. /*FI]*/
  4894. _state=4;
  4895. }
  4896. else{
  4897. C->_ok=r51skip1(C,'\54');
  4898. /*[IF*/
  4899. if((_name_list)==((void*)(NULL))){
  4900. _name_list=se_ma175(1,
  4901. _name);
  4902. }
  4903. else{
  4904. r175add_last(((T175*)_name_list),_name);
  4905. }
  4906. /*FI]*/
  4907. _name=NULL;
  4908. _state=3;
  4909. }
  4910. /*FI]*/
  4911. }
  4912.  else 
  4913. if((3==z1)){
  4914. /*[IF*/
  4915. if(r51a_identifier(C)){
  4916. _name=r92to_argument_name1((T92*)(oBC51tmp_name));
  4917. _state=2;
  4918. }
  4919.  else if((((C)->_cc/*24*/)==('\54'))||(((C)->_cc/*24*/)==('\73'))){
  4920. /*[IRF3.6wcp*/{T51* C1=C;
  4921. T0* b1=((T0*)ms51_38712);
  4922. r51warning(r51current_position(C1),b1);
  4923. }/*]*/
  4924. C->_ok=(r51skip1(C,'\54'))||(r51skip1(C,'\73'));
  4925. }
  4926. else{
  4927. _state=7;
  4928. }
  4929. /*FI]*/
  4930. }
  4931.  else 
  4932. if((4==z1)){
  4933. /*[IF*/
  4934. if(r51a_type(C)){
  4935. /*[IF*/
  4936. if((_name_list)!=((void*)(NULL))){
  4937. {T295*n=malloc(sizeof(*n));
  4938. *n=M295;
  4939. r295make(n,_name_list,(C)->_last_type/*157*/);
  4940. _declaration=(T0*)n;
  4941. }
  4942. _name_list=NULL;
  4943. }
  4944. else{
  4945. {T298*n=malloc(sizeof(*n));
  4946. *n=M298;
  4947. r298make(n,_name,(C)->_last_type/*157*/);
  4948. _declaration=(T0*)n;
  4949. }
  4950. _name=NULL;
  4951. }
  4952. /*FI]*/
  4953. /*[IF*/
  4954. if((_list)==((void*)(NULL))){
  4955. _list=se_ma293(1,
  4956. _declaration);
  4957. }
  4958. else{
  4959. r293add_last(((T293*)_list),_declaration);
  4960. }
  4961. /*FI]*/
  4962. _declaration=NULL;
  4963. _state=5;
  4964. }
  4965. else{
  4966. _state=7;
  4967. }
  4968. /*FI]*/
  4969. }
  4970.  else{/*[IF*/
  4971. if(r51skip1(C,'\51')){
  4972. _state=6;
  4973. }
  4974.  else if(((C)->_cc/*24*/)==('\54')){
  4975. /*[IRF3.6wcp*/{T51* C1=C;
  4976. T0* b1=((T0*)ms51_29280aa);
  4977. r51warning(r51current_position(C1),b1);
  4978. }/*]*/
  4979. C->_ok=r51skip1(C,'\54');
  4980. _state=1;
  4981. }
  4982. else{
  4983. C->_ok=r51skip1(C,'\73');
  4984. _state=1;
  4985. }
  4986. /*FI]*/
  4987. }}
  4988. }
  4989. /*[IF*/
  4990. if((_state)==(7)){
  4991. r51fcp(C,((T0*)ms51_39050));
  4992. }
  4993.  else if(_started){
  4994. /*[IF*/
  4995. if((_list)==((void*)(NULL))){
  4996. /*[IRF3.6wcp*/{T51* C1=C;
  4997. T0* b1=((T0*)ms51_83028a);
  4998. r51warning(r51current_position(C1),b1);
  4999. }/*]*/
  5000. }
  5001. else{
  5002. {T171*n=malloc(sizeof(*n));
  5003. *n=M171;
  5004. r171make(n,_list);
  5005. C->_arguments=(T0*)n;
  5006. }
  5007. /*[IRF3.3set_arguments*/((((T182*)((T182*)(oBC51tmp_feature))))->_arguments)=((C)->_arguments/*49*/);
  5008. /*]*/
  5009. }
  5010. /*FI]*/
  5011. }
  5012. /*FI]*/
  5013. }
  5014.  
  5015.  
  5016. T6 r51a_check(T51* C){
  5017. T6 R=0;
  5018. T0* _al=NULL;
  5019. T0* _hc=NULL;
  5020. T0* _sp=NULL;
  5021. /*[IF*/
  5022. if(r51a_keyword(C,((T0*)ms12_2625))){
  5023. R=1;
  5024. {T39*n=malloc(sizeof(*n));
  5025. *n=M39;
  5026. r39make(n,(C)->_start_line/*169*/,(C)->_start_column/*165*/);
  5027. _sp=(T0*)n;
  5028. }
  5029. _hc=r51get_comments(C);
  5030. _al=r51a_assertion(C);
  5031. /*[IF*/
  5032. if(((_hc)!=((void*)(NULL)))||((_al)!=((void*)(NULL)))){
  5033. {T202*n=malloc(sizeof(*n));
  5034. *n=M202;
  5035. r202make(n,_sp,_hc,_al);
  5036. C->_last_instruction=(T0*)n;
  5037. }
  5038. }
  5039. else{
  5040. /*[IRF3.6wcp*/{T51* C1=C;
  5041. T0* b1=((T0*)ms51_64448);
  5042. r51warning(r51current_position(C1),b1);
  5043. }/*]*/
  5044. }
  5045. /*FI]*/
  5046. /*[IF*/
  5047. if(!(r51a_keyword(C,((T0*)ms12_951)))){
  5048. r51fcp(C,((T0*)ms51_142100));
  5049. }
  5050. /*FI]*/
  5051. }
  5052. /*FI]*/
  5053. return R;
  5054. }
  5055.  
  5056.  
  5057. void r51to_frozen_feature_name(T51* C){
  5058. {T300*n=malloc(sizeof(*n));
  5059. *n=M300;
  5060. /*[IRF3.3make*/((((T300*)(n)))->_feature_name)=((C)->_last_feature_name/*105*/);
  5061. /*]*/
  5062. C->_last_feature_name=(T0*)n;
  5063. }
  5064. }
  5065. /*No:EIFFEL_PARSER.us_boolean*/
  5066.  
  5067.  
  5068. T6 r51a_binary(T51* C,T0* a1){
  5069. T6 R=0;
  5070. R=1;
  5071. /*[IF*/
  5072. if(r51skip2(C,'\74','\75')){
  5073. {T121*n=malloc(sizeof(*n));
  5074. *n=M121;
  5075. r121make(n,((T0*)ms13_248),a1);
  5076. C->_last_binary=(T0*)n;
  5077. }
  5078. }
  5079.  else if(r51skip2(C,'\76','\75')){
  5080. {T121*n=malloc(sizeof(*n));
  5081. *n=M121;
  5082. r121make(n,((T0*)ms13_252),a1);
  5083. C->_last_binary=(T0*)n;
  5084. }
  5085. }
  5086.  else if(r51skip2(C,'\57','\57')){
  5087. {T121*n=malloc(sizeof(*n));
  5088. *n=M121;
  5089. r121make(n,((T0*)ms51_194),a1);
  5090. C->_last_binary=(T0*)n;
  5091. }
  5092. }
  5093.  else if(r51skip2(C,'\134','\134')){
  5094. {T121*n=malloc(sizeof(*n));
  5095. *n=M121;
  5096. r121make(n,((T0*)ms51_374),a1);
  5097. C->_last_binary=(T0*)n;
  5098. }
  5099. }
  5100.  else if(r51skip1(C,'\53')){
  5101. {T121*n=malloc(sizeof(*n));
  5102. *n=M121;
  5103. r121make(n,((T0*)ms13_44),a1);
  5104. C->_last_binary=(T0*)n;
  5105. }
  5106. }
  5107.  else if(r51skip1(C,'\55')){
  5108. {T121*n=malloc(sizeof(*n));
  5109. *n=M121;
  5110. r121make(n,((T0*)ms13_46),a1);
  5111. C->_last_binary=(T0*)n;
  5112. }
  5113. }
  5114.  else if(r51skip1(C,'\52')){
  5115. {T121*n=malloc(sizeof(*n));
  5116. *n=M121;
  5117. r121make(n,((T0*)ms13_43),a1);
  5118. C->_last_binary=(T0*)n;
  5119. }
  5120. }
  5121.  else if(r51skip1(C,'\57')){
  5122. {T121*n=malloc(sizeof(*n));
  5123. *n=M121;
  5124. r121make(n,((T0*)ms13_48),a1);
  5125. C->_last_binary=(T0*)n;
  5126. }
  5127. }
  5128.  else if(r51skip1(C,'\76')){
  5129. {T121*n=malloc(sizeof(*n));
  5130. *n=M121;
  5131. r121make(n,((T0*)ms13_63),a1);
  5132. C->_last_binary=(T0*)n;
  5133. }
  5134. }
  5135.  else if(r51skip1(C,'\74')){
  5136. {T121*n=malloc(sizeof(*n));
  5137. *n=M121;
  5138. r121make(n,((T0*)ms13_61),a1);
  5139. C->_last_binary=(T0*)n;
  5140. }
  5141. }
  5142.  else if(r51skip1(C,'\136')){
  5143. {T121*n=malloc(sizeof(*n));
  5144. *n=M121;
  5145. r121make(n,((T0*)ms51_95),a1);
  5146. C->_last_binary=(T0*)n;
  5147. }
  5148. }
  5149.  else if(r51a_keyword(C,((T0*)ms13_1053a))){
  5150. {T121*n=malloc(sizeof(*n));
  5151. *n=M121;
  5152. r121make(n,((T0*)ms13_1053a),a1);
  5153. C->_last_binary=(T0*)n;
  5154. }
  5155. }
  5156.  else if(r51a_keyword(C,((T0*)ms13_9513))){
  5157. {T121*n=malloc(sizeof(*n));
  5158. *n=M121;
  5159. r121make(n,((T0*)ms13_9513),a1);
  5160. C->_last_binary=(T0*)n;
  5161. }
  5162. }
  5163.  else if(r51a_keyword(C,((T0*)ms13_939))){
  5164. /*[IF*/
  5165. if(r51a_keyword(C,((T0*)ms12_1764))){
  5166. {T121*n=malloc(sizeof(*n));
  5167. *n=M121;
  5168. r121make(n,((T0*)ms13_10800),a1);
  5169. C->_last_binary=(T0*)n;
  5170. }
  5171. }
  5172. else{
  5173. {T121*n=malloc(sizeof(*n));
  5174. *n=M121;
  5175. r121make(n,((T0*)ms13_939),a1);
  5176. C->_last_binary=(T0*)n;
  5177. }
  5178. }
  5179. /*FI]*/
  5180. }
  5181.  else if(r51a_keyword(C,((T0*)ms13_456))){
  5182. /*[IF*/
  5183. if(r51a_keyword(C,((T0*)ms12_1740))){
  5184. {T121*n=malloc(sizeof(*n));
  5185. *n=M121;
  5186. r121make(n,((T0*)ms13_8316),a1);
  5187. C->_last_binary=(T0*)n;
  5188. }
  5189. }
  5190. else{
  5191. {T121*n=malloc(sizeof(*n));
  5192. *n=M121;
  5193. r121make(n,((T0*)ms13_456),a1);
  5194. C->_last_binary=(T0*)n;
  5195. }
  5196. }
  5197. /*FI]*/
  5198. }
  5199. else{
  5200. C->_last_binary=NULL;
  5201. R=0;
  5202. }
  5203. /*FI]*/
  5204. return R;
  5205. }
  5206. /*No:EIFFEL_PARSER.fz_once*/
  5207. /*No:EIFFEL_PARSER.fz_if*/
  5208. /*No:EIFFEL_PARSER.column*/
  5209.  
  5210.  
  5211. void r51a_new_export_list(T51* C){
  5212. T2 _state=0;
  5213. T0* _new_export_item=NULL;
  5214. T0* _items=NULL;
  5215. T0* _clients=NULL;
  5216. T0* _sp=NULL;
  5217. T0* _export_list=NULL;
  5218. /*[IF*/
  5219. if(r51a_keyword(C,((T0*)ms12_7614))){
  5220. {T39*n=malloc(sizeof(*n));
  5221. *n=M39;
  5222. r39make(n,(C)->_start_line/*169*/,(C)->_start_column/*165*/);
  5223. _sp=(T0*)n;
  5224. }
  5225. while (!((_state)>(3))) {
  5226. {int z1=_state;
  5227.  
  5228. if((0==z1)){
  5229. /*[IF*/
  5230. if(((C)->_cc/*24*/)==('\173')){
  5231. _clients=r51a_clients(C);
  5232. _state=1;
  5233. }
  5234.  else if(((C)->_cc/*24*/)==('\73')){
  5235. /*[IRF3.6wcp*/{T51* C1=C;
  5236. T0* b1=((T0*)ms12_41475);
  5237. r51warning(r51current_position(C1),b1);
  5238. }/*]*/
  5239. C->_ok=r51skip1(C,'\73');
  5240. }
  5241. else{
  5242. /*[IF*/
  5243. if((_items)!=((void*)(NULL))){
  5244. {T302*n=malloc(sizeof(*n));
  5245. *n=M302;
  5246. r302make(n,_sp,_items);
  5247. _export_list=(T0*)n;
  5248. }
  5249. /*[IRF3.3set_export*/((((T60*)((T60*)((C)->_last_parent/*149*/))))->_export_list)=(_export_list);
  5250. /*]*/
  5251. }
  5252. /*FI]*/
  5253. _state=4;
  5254. }
  5255. /*FI]*/
  5256. }
  5257.  else 
  5258. if((1==z1)){
  5259. /*[IF*/
  5260. if(r51a_keyword(C,((T0*)ms12_957a))){
  5261. {T301*n=malloc(sizeof(*n));
  5262. *n=M301;
  5263. r301make_all(n,_clients);
  5264. _new_export_item=(T0*)n;
  5265. }
  5266. /*[IF*/
  5267. if((_items)==((void*)(NULL))){
  5268. _items=se_ma303(1,
  5269. _new_export_item);
  5270. }
  5271. else{
  5272. r303add_last(((T303*)_items),_new_export_item);
  5273. }
  5274. /*FI]*/
  5275. _state=2;
  5276. }
  5277. else{
  5278. /*[IF*/
  5279. if(r51a_feature_name_list(C)){
  5280. {T301*n=malloc(sizeof(*n));
  5281. *n=M301;
  5282. r301make(n,_clients,(C)->_last_feature_name_list/*109*/);
  5283. _new_export_item=(T0*)n;
  5284. }
  5285. /*[IF*/
  5286. if((_items)==((void*)(NULL))){
  5287. _items=se_ma303(1,
  5288. _new_export_item);
  5289. }
  5290. else{
  5291. r303add_last(((T303*)_items),_new_export_item);
  5292. }
  5293. /*FI]*/
  5294. _state=2;
  5295. }
  5296. else{
  5297. _state=3;
  5298. }
  5299. /*FI]*/
  5300. }
  5301. /*FI]*/
  5302. }
  5303.  else 
  5304. if((2==z1)){
  5305. /*[IF*/
  5306. if(r51skip1(C,'\73')){
  5307. _state=0;
  5308. }
  5309.  else if(((C)->_cc/*24*/)==('\173')){
  5310. /*[IRF3.6wcp*/{T51* C1=C;
  5311. T0* b1=((T0*)ms51_9410a);
  5312. r51warning(r51current_position(C1),b1);
  5313. }/*]*/
  5314. _state=0;
  5315. }
  5316. else{
  5317. /*[IF*/
  5318. if((_items)!=((void*)(NULL))){
  5319. {T302*n=malloc(sizeof(*n));
  5320. *n=M302;
  5321. r302make(n,_sp,_items);
  5322. _export_list=(T0*)n;
  5323. }
  5324. /*[IRF3.3set_export*/((((T60*)((T60*)((C)->_last_parent/*149*/))))->_export_list)=(_export_list);
  5325. /*]*/
  5326. }
  5327. /*FI]*/
  5328. _state=4;
  5329. }
  5330. /*FI]*/
  5331. }
  5332.  else{r51fcp(C,((T0*)ms51_20247));
  5333. _state=4;
  5334. }}
  5335. }
  5336. }
  5337. /*FI]*/
  5338. }
  5339.  
  5340.  
  5341. void r51a_creation_clause(T51* C,T0* a1){
  5342. T0* _creation_clause=NULL;
  5343. T0* _comments=NULL;
  5344. T0* _clients=NULL;
  5345. _clients=r51a_clients(C);
  5346. _comments=r51get_comments(C);
  5347. /*[IF*/
  5348. if(r51a_feature_name_list(C)){
  5349. }
  5350. /*FI]*/
  5351. {T56*n=malloc(sizeof(*n));
  5352. *n=M56;
  5353. r56make(n,a1,_clients,_comments,(C)->_last_feature_name_list/*109*/);
  5354. _creation_clause=(T0*)n;
  5355. }
  5356. r41add_creation_clause((T41*)((C)->_last_base_class/*65*/),_creation_clause);
  5357. }
  5358. /*No:EIFFEL_PARSER.show_nb_errors*/
  5359. /*No:EIFFEL_PARSER.last_integer_constant*/
  5360. /*No:EIFFEL_PARSER.last_boolean_constant*/
  5361.  
  5362.  
  5363. T6 r51a_integer_constant(T51* C){
  5364. T6 R=0;
  5365. T2 _c=0;
  5366. T2 _l=0;
  5367. /*[IF*/
  5368. if(r51skip1(C,'\53')){
  5369. _l=(C)->_start_line/*169*/;
  5370. _c=(C)->_start_column/*165*/;
  5371. /*[IF*/
  5372. if(r51a_integer(C)){
  5373. r39set_line_column((T39*)(((T158*)((C)->_last_integer_constant/*129*/))->_start_position/*4*/),_l,_c);
  5374. R=1;
  5375. }
  5376. else{
  5377. r51fcp(C,((T0*)ms12_45846));
  5378. }
  5379. /*FI]*/
  5380. }
  5381.  else if(r51skip1(C,'\55')){
  5382. _l=(C)->_start_line/*169*/;
  5383. _c=(C)->_start_column/*165*/;
  5384. /*[IF*/
  5385. if(r51a_integer(C)){
  5386. r39set_line_column((T39*)(((T158*)((C)->_last_integer_constant/*129*/))->_start_position/*4*/),_l,_c);
  5387. r158unary_minus((T158*)((C)->_last_integer_constant/*129*/));
  5388. R=1;
  5389. }
  5390. else{
  5391. r51fcp(C,((T0*)ms12_45846));
  5392. }
  5393. /*FI]*/
  5394. }
  5395. else{
  5396. R=r51a_integer(C);
  5397. }
  5398. /*FI]*/
  5399. return R;
  5400. }
  5401. /*No:EIFFEL_PARSER.fz_do*/
  5402. /*No:EIFFEL_PARSER.fz_as*/
  5403. /*No:EIFFEL_PARSER.us_ge*/
  5404. /*No:EIFFEL_PARSER.go_back*/
  5405.  
  5406.  
  5407. T6 r51a_prefix(T51* C){
  5408. T6 R=0;
  5409. /*[IF*/
  5410. if(r51a_keyword(C,((T0*)ms12_7614a))){
  5411. R=1;
  5412. /*[IF*/
  5413. if(((C)->_cc/*24*/)==('\42')){
  5414. r51next_char(C);
  5415. }
  5416. else{
  5417. /*[IRF3.6wcp*/{T51* C1=C;
  5418. T0* b1=((T0*)ms51_89232);
  5419. r51warning(r51current_position(C1),b1);
  5420. }/*]*/
  5421. }
  5422. /*FI]*/
  5423. /*[IF*/
  5424. if(r51a_unary(C)){
  5425. }
  5426.  else if(r51a_free_operator(C)){
  5427. C->_last_prefix=r92to_prefix_name((T92*)(oBC51tmp_name));
  5428. }
  5429. else{
  5430. r51fcp(C,((T0*)ms51_56910));
  5431. }
  5432. /*FI]*/
  5433. /*[IF*/
  5434. if(!(r51skip1(C,'\42'))){
  5435. /*[IRF3.6wcp*/{T51* C1=C;
  5436. T0* b1=((T0*)ms51_38352);
  5437. r51warning(r51current_position(C1),b1);
  5438. }/*]*/
  5439. }
  5440. /*FI]*/
  5441. }
  5442. /*FI]*/
  5443. return R;
  5444. }
  5445. /*No:EIFFEL_PARSER.last_feature_declaration*/
  5446. /*No:EIFFEL_PARSER.us_none*/
  5447. /*No:EIFFEL_PARSER.start_column*/
  5448. /*No:EIFFEL_PARSER.us_string*/
  5449. /*No:EIFFEL_PARSER.fz_se*/
  5450. /*No:EIFFEL_PARSER.fz_true*/
  5451. /*No:EIFFEL_PARSER.us_le*/
  5452. /*No:EIFFEL_PARSER.fz_c_inlinewithoutcurrent*/
  5453. /*No:EIFFEL_PARSER.fz_c_withoutcurrent*/
  5454.  
  5455.  
  5456. void r51a_local_var_list(T51* C){
  5457. T2 _state=0;
  5458. T2 _rank=0;
  5459. T0* _list=NULL;
  5460. T0* _declaration=NULL;
  5461. T0* _name_list=NULL;
  5462. T0* _name=NULL;
  5463. while (!((_state)>(4))) {
  5464. {int z1=_state;
  5465.  
  5466. if((0==z1)){
  5467. /*[IF*/
  5468. if(r51a_identifier(C)){
  5469. _name=r92to_local_name1((T92*)(oBC51tmp_name));
  5470. _state=1;
  5471. /*[IF*/
  5472. if(((C)->_arguments/*49*/)!=((void*)(NULL))){
  5473. _rank=r171rank_of((T171*)((C)->_arguments/*49*/),(((T167*)_name))->_to_string/*8*/);
  5474. /*[IF*/
  5475. if((_rank)>(0)){
  5476. r37add_position((((T167*)_name))->_start_position/*4*/);
  5477. r37add_position(((T174*)(/*(IRF4.6name*/r175item(((T175*)(((T171*)((C)->_arguments/*49*/))->_flat_list/*8*/)),_rank)/*)*/))->_start_position/*4*/);
  5478. r37error((T37*)(oBC11eh),((T0*)ms51_112815));
  5479. }
  5480. /*FI]*/
  5481. }
  5482. /*FI]*/
  5483. }
  5484.  else if((((C)->_cc/*24*/)==('\54'))||(((C)->_cc/*24*/)==('\73'))){
  5485. /*[IRF3.6wcp*/{T51* C1=C;
  5486. T0* b1=((T0*)ms51_38712);
  5487. r51warning(r51current_position(C1),b1);
  5488. }/*]*/
  5489. C->_ok=(r51skip1(C,'\54'))||(r51skip1(C,'\73'));
  5490. }
  5491. else{
  5492. _state=5;
  5493. }
  5494. /*FI]*/
  5495. }
  5496.  else 
  5497. if((1==z1)){
  5498. /*[IF*/
  5499. if(r51skip1(C,'\72')){
  5500. /*[IF*/
  5501. if((_name_list)!=((void*)(NULL))){
  5502. r169add_last(((T169*)_name_list),_name);
  5503. _name=NULL;
  5504. }
  5505. /*FI]*/
  5506. _state=3;
  5507. }
  5508. else{
  5509. /*[IF*/
  5510. if(((C)->_cc/*24*/)==('\73')){
  5511. /*[IRF3.6wcp*/{T51* C1=C;
  5512. T0* b1=((T0*)ms51_29280);
  5513. r51warning(r51current_position(C1),b1);
  5514. }/*]*/
  5515. C->_ok=r51skip1(C,'\73');
  5516. }
  5517. else{
  5518. C->_ok=r51skip1(C,'\54');
  5519. }
  5520. /*FI]*/
  5521. /*[IF*/
  5522. if((_name_list)==((void*)(NULL))){
  5523. _name_list=se_ma169(1,
  5524. _name);
  5525. }
  5526. else{
  5527. r169add_last(((T169*)_name_list),_name);
  5528. }
  5529. /*FI]*/
  5530. _name=NULL;
  5531. _state=2;
  5532. }
  5533. /*FI]*/
  5534. }
  5535.  else 
  5536. if((2==z1)){
  5537. /*[IF*/
  5538. if(r51a_identifier(C)){
  5539. _name=r92to_local_name1((T92*)(oBC51tmp_name));
  5540. _state=1;
  5541. /*[IF*/
  5542. if(((C)->_arguments/*49*/)!=((void*)(NULL))){
  5543. _rank=r171rank_of((T171*)((C)->_arguments/*49*/),(((T167*)_name))->_to_string/*8*/);
  5544. /*[IF*/
  5545. if((_rank)>(0)){
  5546. r37add_position((((T167*)_name))->_start_position/*4*/);
  5547. r37add_position(((T174*)(/*(IRF4.6name*/r175item(((T175*)(((T171*)((C)->_arguments/*49*/))->_flat_list/*8*/)),_rank)/*)*/))->_start_position/*4*/);
  5548. r37error((T37*)(oBC11eh),((T0*)ms51_112815a));
  5549. }
  5550. /*FI]*/
  5551. }
  5552. /*FI]*/
  5553. }
  5554.  else if((((C)->_cc/*24*/)==('\54'))||(((C)->_cc/*24*/)==('\73'))){
  5555. /*[IRF3.6wcp*/{T51* C1=C;
  5556. T0* b1=((T0*)ms51_38712);
  5557. r51warning(r51current_position(C1),b1);
  5558. }/*]*/
  5559. C->_ok=(r51skip1(C,'\54'))||(r51skip1(C,'\73'));
  5560. }
  5561. else{
  5562. _state=6;
  5563. }
  5564. /*FI]*/
  5565. }
  5566.  else 
  5567. if((3==z1)){
  5568. /*[IF*/
  5569. if(r51a_type(C)){
  5570. /*[IF*/
  5571. if((_name_list)!=((void*)(NULL))){
  5572. {T295*n=malloc(sizeof(*n));
  5573. *n=M295;
  5574. r295make(n,_name_list,(C)->_last_type/*157*/);
  5575. _declaration=(T0*)n;
  5576. }
  5577. _name_list=NULL;
  5578. }
  5579. else{
  5580. {T298*n=malloc(sizeof(*n));
  5581. *n=M298;
  5582. r298make(n,_name,(C)->_last_type/*157*/);
  5583. _declaration=(T0*)n;
  5584. }
  5585. _name=NULL;
  5586. }
  5587. /*FI]*/
  5588. /*[IF*/
  5589. if((_list)==((void*)(NULL))){
  5590. _list=se_ma293(1,
  5591. _declaration);
  5592. }
  5593. else{
  5594. r293add_last(((T293*)_list),_declaration);
  5595. }
  5596. /*FI]*/
  5597. _state=4;
  5598. }
  5599. else{
  5600. _state=6;
  5601. }
  5602. /*FI]*/
  5603. }
  5604.  else{/*[IF*/
  5605. if(((C)->_cc/*24*/)==('\54')){
  5606. /*[IRF3.6wcp*/{T51* C1=C;
  5607. T0* b1=((T0*)ms51_29280a);
  5608. r51warning(r51current_position(C1),b1);
  5609. }/*]*/
  5610. C->_ok=r51skip1(C,'\54');
  5611. _state=0;
  5612. }
  5613. else{
  5614. C->_ok=r51skip1(C,'\73');
  5615. _state=0;
  5616. }
  5617. /*FI]*/
  5618. }}
  5619. }
  5620. /*[IF*/
  5621. if((_state)==(6)){
  5622. r51fcp(C,((T0*)ms51_36528));
  5623. }
  5624.  else if((_list)!=((void*)(NULL))){
  5625. {T162*n=malloc(sizeof(*n));
  5626. *n=M162;
  5627. /*[IRF3.6make*/{T162* C1=n;
  5628. T0* b1=_list;
  5629. r162declaration_list_make(C1,b1);
  5630. }/*]*/
  5631. C->_local_vars=(T0*)n;
  5632. }
  5633. /*[IRF3.3set_local_vars*/((((T182*)((T182*)(oBC51tmp_feature))))->_local_vars)=((C)->_local_vars/*53*/);
  5634. /*]*/
  5635. }
  5636. /*FI]*/
  5637. }
  5638. /*No:EIFFEL_PARSER.fz_is*/
  5639.  
  5640.  
  5641. T6 r51a_precursor(T51* C,T6 a1){
  5642. T6 R=0;
  5643. T0* _args=NULL;
  5644. T0* _parent=NULL;
  5645. T0* _sp=NULL;
  5646. /*[IF*/
  5647. if(r51skip1(C,'\173')){
  5648. R=1;
  5649. {T39*n=malloc(sizeof(*n));
  5650. *n=M39;
  5651. r39make(n,(C)->_start_line/*169*/,(C)->_start_column/*165*/);
  5652. _sp=(T0*)n;
  5653. }
  5654. /*[IF*/
  5655. if(r51skip1(C,'\173')){
  5656. r51warning(r51pos((C)->_start_line/*169*/,(C)->_start_column/*165*/),((T0*)ms51_104490a));
  5657. }
  5658. /*FI]*/
  5659. /*[IF*/
  5660. if(r51a_base_class_name(C)){
  5661. _parent=(C)->_last_class_name/*89*/;
  5662. }
  5663. /*FI]*/
  5664. /*[IF*/
  5665. if(!(r51skip1(C,'\175'))){
  5666. r51fcp(C,((T0*)ms51_202947));
  5667. }
  5668. /*FI]*/
  5669. /*[IF*/
  5670. if(r51skip1(C,'\175')){
  5671. r51warning(r51pos((C)->_start_line/*169*/,(C)->_start_column/*165*/),((T0*)ms51_104490));
  5672. }
  5673. /*FI]*/
  5674. }
  5675. /*FI]*/
  5676. /*[IF*/
  5677. if(r51a_keyword(C,((T0*)ms13_13968))){
  5678. R=1;
  5679. /*[IF*/
  5680. if((_sp)==((void*)(NULL))){
  5681. {T39*n=malloc(sizeof(*n));
  5682. *n=M39;
  5683. r39make(n,(C)->_start_line/*169*/,(C)->_start_column/*165*/);
  5684. _sp=(T0*)n;
  5685. }
  5686. }
  5687. /*FI]*/
  5688. _args=r51a_actuals(C);
  5689. }
  5690.  else if((_sp)!=((void*)(NULL))){
  5691. r51fcp(C,((T0*)ms51_63936));
  5692. }
  5693. /*FI]*/
  5694. /*[IF*/
  5695. if(R){
  5696. /*[IF*/
  5697. if(r51skip1unless2(C,'\56','\56')){
  5698. {T159*n=malloc(sizeof(*n));
  5699. *n=M159;
  5700. r159make(n,_sp,_parent,_args);
  5701. C->_last_expression=(T0*)n;
  5702. }
  5703. r51a_after_a_dot(C,a1,(C)->_last_expression/*97*/);
  5704. }
  5705.  else if(a1){
  5706. {T161*n=malloc(sizeof(*n));
  5707. *n=M161;
  5708. r161make(n,_sp,_parent,_args);
  5709. C->_last_instruction=(T0*)n;
  5710. }
  5711. }
  5712. else{
  5713. {T159*n=malloc(sizeof(*n));
  5714. *n=M159;
  5715. r159make(n,_sp,_parent,_args);
  5716. C->_last_expression=(T0*)n;
  5717. }
  5718. }
  5719. /*FI]*/
  5720. }
  5721. /*FI]*/
  5722. return R;
  5723. }
  5724. /*No:EIFFEL_PARSER.inside_once_function*/
  5725. /*No:EIFFEL_PARSER.us_neq*/
  5726. /*No:EIFFEL_PARSER.us_eq*/
  5727.  
  5728.  
  5729. T6 r51a_character_constant(T51* C){
  5730. T6 R=0;
  5731. T3 _value=0;
  5732. T2 _printing_mode=0;
  5733. T2 _state=0;
  5734. T0* _sp=NULL;
  5735. /*[IF*/
  5736. if(((C)->_cc/*24*/)==('\47')){
  5737. {T39*n=malloc(sizeof(*n));
  5738. *n=M39;
  5739. r39make(n,(C)->_line/*16*/,(C)->_column/*12*/);
  5740. _sp=(T0*)n;
  5741. }
  5742. R=1;
  5743. while (!((_state)>(2))) {
  5744. r51next_char(C);
  5745. {int z1=_state;
  5746.  
  5747. if((0==z1)){
  5748. {int z2=(C)->_cc/*24*/;
  5749.  
  5750. if((37==z2)){
  5751. _state=1;
  5752. }
  5753.  else 
  5754. if((39==z2)){
  5755. r51fcp(C,((T0*)ms51_33741));
  5756. _state=2;
  5757. }
  5758.  else{_value=(C)->_cc/*24*/;
  5759. _printing_mode=0;
  5760. _state=2;
  5761. }}
  5762. }
  5763.  else 
  5764. if((1==z1)){
  5765. _printing_mode=1;
  5766. _state=2;
  5767. {int z2=(C)->_cc/*24*/;
  5768.  
  5769. if((65==z2)){
  5770. _value='\100';
  5771. }
  5772.  else 
  5773. if((66==z2)){
  5774. _value='\10';
  5775. }
  5776.  else 
  5777. if((67==z2)){
  5778. _value='\136';
  5779. }
  5780.  else 
  5781. if((68==z2)){
  5782. _value='\44';
  5783. }
  5784.  else 
  5785. if((70==z2)){
  5786. _value='\14';
  5787. }
  5788.  else 
  5789. if((72==z2)){
  5790. _value='\134';
  5791. }
  5792.  else 
  5793. if((76==z2)){
  5794. _value='\176';
  5795. }
  5796.  else 
  5797. if((78==z2)){
  5798. _value='\n';
  5799. }
  5800.  else 
  5801. if((81==z2)){
  5802. _value='\140';
  5803. }
  5804.  else 
  5805. if((82==z2)){
  5806. _value='\15';
  5807. }
  5808.  else 
  5809. if((83==z2)){
  5810. _value='\43';
  5811. }
  5812.  else 
  5813. if((84==z2)){
  5814. _value='\11';
  5815. }
  5816.  else 
  5817. if((85==z2)){
  5818. _value='\0';
  5819. }
  5820.  else 
  5821. if((86==z2)){
  5822. _value='\174';
  5823. }
  5824.  else 
  5825. if((37==z2)){
  5826. _value='\45';
  5827. }
  5828.  else 
  5829. if((39==z2)){
  5830. _value='\47';
  5831. }
  5832.  else 
  5833. if((34==z2)){
  5834. _value='\42';
  5835. }
  5836.  else 
  5837. if((40==z2)){
  5838. _value='\133';
  5839. }
  5840.  else 
  5841. if((41==z2)){
  5842. _value='\135';
  5843. }
  5844.  else 
  5845. if((60==z2)){
  5846. _value='\173';
  5847. }
  5848.  else 
  5849. if((62==z2)){
  5850. _value='\175';
  5851. }
  5852.  else 
  5853. if((47==z2)){
  5854. r51a_ascii_code(C);
  5855. _value=((T3)((C)->_last_ascii_code/*61*/));
  5856. _printing_mode=2;
  5857. }
  5858.  else{r51fcp(C,((T0*)ms51_45084));
  5859. }}
  5860. }
  5861.  else{_state=3;
  5862. {int z2=(C)->_cc/*24*/;
  5863.  
  5864. if((39==z2)){
  5865. }
  5866.  else{r51fcp(C,((T0*)ms51_33741));
  5867. }}
  5868. r51next_char(C);
  5869. r51skip_comments(C);
  5870. }}
  5871. }
  5872. {T153*n=malloc(sizeof(*n));
  5873. *n=M153;
  5874. r153make(n,_sp,_value,_printing_mode);
  5875. C->_last_character_constant=(T0*)n;
  5876. }
  5877. }
  5878. /*FI]*/
  5879. return R;
  5880. }
  5881. /*No:EIFFEL_PARSER.fatal_error*/
  5882.  
  5883.  
  5884. T6 r51a_free_operator(T51* C){
  5885. T6 R=0;
  5886. /*[IF*/
  5887. if((((((C)->_cc/*24*/)==('\100'))||(((C)->_cc/*24*/)==('\43')))||(((C)->_cc/*24*/)==('\174')))||(((C)->_cc/*24*/)==('\46'))){
  5888. R=1;
  5889. r92initialize((T92*)(oBC51tmp_name),(C)->_line/*16*/,(C)->_column/*12*/);
  5890. /*[IRF3.6extend*/{T3 b1=(C)->_cc/*24*/;
  5891. r7extend((T7*)(oBC92tmp_string),b1);
  5892. }/*]*/
  5893. r51next_char(C);
  5894. while (!((((((C)->_cc/*24*/)==('\n'))||(((C)->_cc/*24*/)==('\40')))||(((C)->_cc/*24*/)==('\11')))||(((C)->_cc/*24*/)==('\42')))) {
  5895. /*[IRF3.6extend*/{T3 b1=(C)->_cc/*24*/;
  5896. r7extend((T7*)(oBC92tmp_string),b1);
  5897. }/*]*/
  5898. r51next_char(C);
  5899. }
  5900. r51skip_comments(C);
  5901. }
  5902. /*FI]*/
  5903. return R;
  5904. }
  5905. /*No:EIFFEL_PARSER.em10*/
  5906. /*No:EIFFEL_PARSER.us_gt*/
  5907. /*No:EIFFEL_PARSER.em11*/
  5908. /*No:EIFFEL_PARSER.em20*/
  5909. /*No:EIFFEL_PARSER.em12*/
  5910. /*No:EIFFEL_PARSER.em13*/
  5911. /*No:EIFFEL_PARSER.fz_c_withcurrent*/
  5912.  
  5913.  
  5914. void r51a_then_part_list(T51* C,T0* a1){
  5915. /*[IF*/
  5916. if(!(r51a_then_part(C,a1))){
  5917. r51fcp(C,((T0*)ms51_28035));
  5918. }
  5919. /*FI]*/
  5920. while (!(!(r51a_keyword(C,((T0*)ms12_6942))))) {
  5921. /*[IF*/
  5922. if(!(r51a_then_part(C,a1))){
  5923. r51fcp(C,((T0*)ms51_37875));
  5924. }
  5925. /*FI]*/
  5926. }
  5927. }
  5928.  
  5929.  
  5930. void r51warning(T0* a1,T0* a2){
  5931. r37add_position(a1);
  5932. r37warning((T37*)(oBC11eh),a2);
  5933. }
  5934. /*No:EIFFEL_PARSER.em15*/
  5935. /*No:EIFFEL_PARSER.em16*/
  5936. /*No:EIFFEL_PARSER.us_lt*/
  5937.  
  5938.  
  5939. T6 r51a_identifier2(T51* C){
  5940. T6 R=0;
  5941. T6 _do_warning=0;
  5942. T2 _state=0;
  5943. /*[IF*/
  5944. if(r3is_letter((C)->_cc/*24*/)){
  5945. r92initialize((T92*)(oBC51tmp_name),(C)->_line/*16*/,(C)->_column/*12*/);
  5946. /*[IRF3.6extend*/{T3 b1=(C)->_cc/*24*/;
  5947. r7extend((T7*)(oBC92tmp_string),b1);
  5948. }/*]*/
  5949. while (!((_state)>(0))) {
  5950. r51next_char(C);
  5951. {int z1=(C)->_cc/*24*/;
  5952.  
  5953. if(((48<=z1)&&(z1<=57))||(95==z1)||((97<=z1)&&(z1<=122))){
  5954. /*[IRF3.6extend*/{T3 b1=(C)->_cc/*24*/;
  5955. r7extend((T7*)(oBC92tmp_string),b1);
  5956. }/*]*/
  5957. }
  5958.  else 
  5959. if(((65<=z1)&&(z1<=90))){
  5960. _do_warning=1;
  5961. /*[IRF3.6extend*/{T3 b1=(C)->_cc/*24*/;
  5962. r7extend((T7*)(oBC92tmp_string),b1);
  5963. }/*]*/
  5964. }
  5965.  else{_state=1;
  5966. }}
  5967. }
  5968. /*[IF*/
  5969. if(r92isa_keyword()){
  5970. _state=/*(IRF4.9count*/((T7*)(oBC92tmp_string))->_count/*4*//*)*/;
  5971. while (!((_state)==(0))) {
  5972. _state=(_state)-(1);
  5973. r51prev_char(C);
  5974. }
  5975. }
  5976. else{
  5977. R=1;
  5978. r51skip_comments(C);
  5979. /*[IF*/
  5980. if(_do_warning){
  5981. r51warning(r92start_position((T92*)(oBC51tmp_name)),((T0*)ms51_116325));
  5982. }
  5983. /*FI]*/
  5984. }
  5985. /*FI]*/
  5986. }
  5987. /*FI]*/
  5988. return R;
  5989. }
  5990. /*No:EIFFEL_PARSER.current_line*/
  5991. /*No:EIFFEL_PARSER.em17*/
  5992. /*No:EIFFEL_PARSER.fz_obsolete*/
  5993. /*No:EIFFEL_PARSER.us_or*/
  5994. /*No:EIFFEL_PARSER.em18*/
  5995. /*No:EIFFEL_PARSER.us_bit*/
  5996. /*No:EIFFEL_PARSER.em19*/
  5997.  
  5998.  
  5999. void r51error(T0* a1,T0* a2){
  6000. r37add_position(a1);
  6001. r37error((T37*)(oBC11eh),a2);
  6002. }
  6003. /*No:EIFFEL_PARSER.fz_expanded*/
  6004. /*No:EIFFEL_PARSER.fz_infix*/
  6005. /*No:EIFFEL_PARSER.last_base_type*/
  6006. /*No:EIFFEL_PARSER.current_class_name*/
  6007. /*No:EIFFEL_PARSER.last_real_constant*/
  6008. /*No:EIFFEL_PARSER.last_bit_constant*/
  6009.  
  6010.  
  6011. T0* r51to_call(T0* a1,T0* a2,T0* a3){
  6012. T0* R=NULL;
  6013. /*[IF*/
  6014. if((a2)==((void*)(NULL))){
  6015. R=a1;
  6016. }
  6017.  else if((a3)==((void*)(NULL))){
  6018. {T133*n=malloc(sizeof(*n));
  6019. *n=M133;
  6020. r133make(n,a1,a2);
  6021. R=(T0*)n;
  6022. }
  6023. }
  6024.  else if((r132count(((T132*)a3)))==(1)){
  6025. {T135*n=malloc(sizeof(*n));
  6026. *n=M135;
  6027. r135make(n,a1,a2,a3);
  6028. R=(T0*)n;
  6029. }
  6030. }
  6031. else{
  6032. {T136*n=malloc(sizeof(*n));
  6033. *n=M136;
  6034. r136make(n,a1,a2,a3);
  6035. R=(T0*)n;
  6036. }
  6037. }
  6038. /*FI]*/
  6039. return R;
  6040. }
  6041. /*No:EIFFEL_PARSER.nb_warnings*/
  6042. /*No:EIFFEL_PARSER.fz_redefine*/
  6043. T0*oBC51tmp_feature=NULL;
  6044. /*No:EIFFEL_PARSER.fz_retry*/
  6045. /*No:EIFFEL_PARSER.us_xor*/
  6046.  
  6047.  
  6048. T6 r51a_e0(T51* C){
  6049. T6 R=0;
  6050. R=r51a_e1(C);
  6051. r51a_r1(C,(C)->_last_expression/*97*/);
  6052. return R;
  6053. }
  6054.  
  6055.  
  6056. T0* r51get_comments(T51* C){
  6057. T0* R=NULL;
  6058. R=(C)->_last_comments/*25*/;
  6059. C->_last_comments=NULL;
  6060. return R;
  6061. }
  6062.  
  6063.  
  6064. T6 r51a_e1(T51* C){
  6065. T6 R=0;
  6066. R=r51a_e2(C);
  6067. r51a_r2(C,(C)->_last_expression/*97*/);
  6068. return R;
  6069. }
  6070. /*No:EIFFEL_PARSER.us_not*/
  6071.  
  6072.  
  6073. T6 r51a_e2(T51* C){
  6074. T6 R=0;
  6075. R=r51a_e3(C);
  6076. r51a_r3(C,(C)->_last_expression/*97*/);
  6077. return R;
  6078. }
  6079.  
  6080.  
  6081. T6 r51a_then_part(T51* C,T0* a1){
  6082. T6 R=0;
  6083. T0* _expression=NULL;
  6084. /*[IF*/
  6085. if(r51a_expression(C)){
  6086. R=1;
  6087. _expression=X89add_comment((C)->_last_expression/*97*/,r51get_comments(C));
  6088. /*[IF*/
  6089. if(!(r51a_keyword(C,((T0*)ms12_1764)))){
  6090. /*[IRF3.6wcp*/{T51* C1=C;
  6091. T0* b1=((T0*)ms51_14027);
  6092. r51warning(r51current_position(C1),b1);
  6093. }/*]*/
  6094. }
  6095. /*FI]*/
  6096. r206add_if_then(((T206*)a1),_expression,r51a_compound1(C));
  6097. }
  6098. /*FI]*/
  6099. return R;
  6100. }
  6101.  
  6102.  
  6103. T6 r51a_e3(T51* C){
  6104. T6 R=0;
  6105. R=r51a_e4(C);
  6106. r51a_r4(C,(C)->_last_expression/*97*/);
  6107. return R;
  6108. }
  6109. /*No:EIFFEL_PARSER.us_array*/
  6110.  
  6111.  
  6112. T6 r51a_e4(T51* C){
  6113. T6 R=0;
  6114. R=r51a_e5(C);
  6115. r51a_r5(C,(C)->_last_expression/*97*/);
  6116. return R;
  6117. }
  6118.  
  6119.  
  6120. T6 r51a_e5(T51* C){
  6121. T6 R=0;
  6122. R=r51a_e6(C);
  6123. r51a_r6(C,(C)->_last_expression/*97*/);
  6124. return R;
  6125. }
  6126.  
  6127.  
  6128. T6 r51a_e6(T51* C){
  6129. T6 R=0;
  6130. R=r51a_e7(C);
  6131. r51a_r7(C,(C)->_last_expression/*97*/);
  6132. return R;
  6133. }
  6134.  
  6135.  
  6136. void r51go_back_at(T51* C,T2 a1,T2 a2){
  6137. C->_line=a1;
  6138. C->_column=a2;
  6139. C->_current_line=r52item((C)->_line/*16*/);
  6140. /*[IF*/
  6141. if(((C)->_column/*12*/)==((((T7*)((C)->_current_line/*20*/))->_count/*4*/)+(1))){
  6142. C->_cc='\n';
  6143. }
  6144.  else if(((C)->_column/*12*/)==(0)){
  6145. C->_cc='\0';
  6146. }
  6147. else{
  6148. C->_cc=/*(IRF4.6item*/(((T7*)((C)->_current_line/*20*/))->_storage/*0*/)[((C)->_column/*12*/)-(1)]/*)*/;
  6149. }
  6150. /*FI]*/
  6151. }
  6152.  
  6153.  
  6154. T6 r51a_e7(T51* C){
  6155. T6 R=0;
  6156. R=r51a_e8(C);
  6157. r51a_r8(C,(C)->_last_expression/*97*/);
  6158. return R;
  6159. }
  6160. /*No:EIFFEL_PARSER.last_manifest_string*/
  6161.  
  6162.  
  6163. T6 r51a_e8(T51* C){
  6164. T6 R=0;
  6165. T0* _sp=NULL;
  6166. T0* _prefix_freeop=NULL;
  6167. T0* _op=NULL;
  6168. T0* _prefix_moins=NULL;
  6169. T0* _prefix_plus=NULL;
  6170. T0* _prefix_not=NULL;
  6171. /*[IF*/
  6172. if(r51a_keyword(C,((T0*)ms13_1029))){
  6173. {T39*n=malloc(sizeof(*n));
  6174. *n=M39;
  6175. r39make(n,(C)->_start_line/*169*/,(C)->_start_column/*165*/);
  6176. _sp=(T0*)n;
  6177. }
  6178. /*[IF*/
  6179. if(r51a_e8(C)){
  6180. {T128*n=malloc(sizeof(*n));
  6181. *n=M128;
  6182. r128make(n,_sp,(C)->_last_expression/*97*/);
  6183. _prefix_not=(T0*)n;
  6184. }
  6185. C->_last_expression=_prefix_not;
  6186. R=1;
  6187. }
  6188. else{
  6189. r51err_exp(_sp,((T0*)ms13_1029));
  6190. }
  6191. /*FI]*/
  6192. }
  6193.  else if(r51skip1(C,'\53')){
  6194. {T39*n=malloc(sizeof(*n));
  6195. *n=M39;
  6196. r39make(n,(C)->_start_line/*169*/,(C)->_start_column/*165*/);
  6197. _sp=(T0*)n;
  6198. }
  6199. /*[IF*/
  6200. if(r51a_e8(C)){
  6201. {T127*n=malloc(sizeof(*n));
  6202. *n=M127;
  6203. r127make(n,_sp,(C)->_last_expression/*97*/);
  6204. _prefix_plus=(T0*)n;
  6205. }
  6206. C->_last_expression=_prefix_plus;
  6207. R=1;
  6208. }
  6209. else{
  6210. r51err_exp(_sp,((T0*)ms51_7660));
  6211. }
  6212. /*FI]*/
  6213. }
  6214.  else if(r51skip1(C,'\55')){
  6215. {T39*n=malloc(sizeof(*n));
  6216. *n=M39;
  6217. r39make(n,(C)->_start_line/*169*/,(C)->_start_column/*165*/);
  6218. _sp=(T0*)n;
  6219. }
  6220. /*[IF*/
  6221. if(r51a_e8(C)){
  6222. {T126*n=malloc(sizeof(*n));
  6223. *n=M126;
  6224. r126make(n,_sp,(C)->_last_expression/*97*/);
  6225. _prefix_moins=(T0*)n;
  6226. }
  6227. C->_last_expression=_prefix_moins;
  6228. R=1;
  6229. }
  6230. else{
  6231. r51err_exp(_sp,((T0*)ms51_7680));
  6232. }
  6233. /*FI]*/
  6234. }
  6235.  else if(r51a_free_operator(C)){
  6236. _op=r92to_prefix_name((T92*)(oBC51tmp_name));
  6237. /*[IF*/
  6238. if(r51a_e8(C)){
  6239. {T122*n=malloc(sizeof(*n));
  6240. *n=M122;
  6241. r122make(n,(C)->_last_expression/*97*/,_op);
  6242. _prefix_freeop=(T0*)n;
  6243. }
  6244. C->_last_expression=_prefix_freeop;
  6245. R=1;
  6246. }
  6247. else{
  6248. /*[IRF3.6append*/{T0* b1=((T0*)ms51_37044);
  6249. r7append((T7*)(oBC37explanation),b1);
  6250. }/*]*/
  6251. r51err_exp((((T125*)_op))->_start_position/*8*/,(((T125*)_op))->_to_string/*4*/);
  6252. }
  6253. /*FI]*/
  6254. }
  6255. else{
  6256. R=r51a_e9(C);
  6257. }
  6258. /*FI]*/
  6259. return R;
  6260. }
  6261.  
  6262.  
  6263. T6 r51a_e9(T51* C){
  6264. T6 R=0;
  6265. T0* _e_old=NULL;
  6266. /*[IF*/
  6267. if(r51a_keyword(C,((T0*)ms12_975))){
  6268. /*[IF*/
  6269. if(!((C)->_in_ensure/*41*/)){
  6270. r51error(r51pos((C)->_start_line/*169*/,(C)->_start_column/*165*/),((T0*)ms51_146727));
  6271. }
  6272. /*FI]*/
  6273. /*[IF*/
  6274. if(r51a_e10(C)){
  6275. {T129*n=malloc(sizeof(*n));
  6276. *n=M129;
  6277. /*[IRF3.3make*/((((T129*)(n)))->_expression)=((C)->_last_expression/*97*/);
  6278. /*]*/
  6279. _e_old=(T0*)n;
  6280. }
  6281. C->_last_expression=_e_old;
  6282. R=1;
  6283. }
  6284. else{
  6285. r51fcp(C,((T0*)ms51_64096));
  6286. }
  6287. /*FI]*/
  6288. }
  6289. else{
  6290. R=r51a_e10(C);
  6291. }
  6292. /*FI]*/
  6293. return R;
  6294. }
  6295.  
  6296.  
  6297. T6 r51a_when_part(T51* C,T0* a1){
  6298. T6 R=0;
  6299. T0* _constant=NULL;
  6300. T0* _e_when=NULL;
  6301. T2 _state=0;
  6302. /*[IF*/
  6303. if(r51a_keyword(C,((T0*)ms12_1776))){
  6304. R=1;
  6305. {T217*n=malloc(sizeof(*n));
  6306. *n=M217;
  6307. r217make(n,r51pos((C)->_start_line/*169*/,(C)->_start_column/*165*/),r51get_comments(C));
  6308. _e_when=(T0*)n;
  6309. }
  6310. while (!((_state)>(3))) {
  6311. {int z1=_state;
  6312.  
  6313. if((0==z1)){
  6314. /*[IF*/
  6315. if(r51a_constant(C)){
  6316. _constant=(C)->_last_expression/*97*/;
  6317. _state=1;
  6318. }
  6319.  else if(r51a_keyword(C,((T0*)ms12_1764))){
  6320. /*[IF*/
  6321. if((_constant)!=((void*)(NULL))){
  6322. r217add_value(((T217*)_e_when),_constant);
  6323. }
  6324. /*FI]*/
  6325. /*[IRF3.3set_compound*/((((T217*)(((T217*)_e_when))))->_compound)=(r51a_compound1(C));
  6326. /*]*/
  6327. r216add_when(((T216*)a1),_e_when);
  6328. _state=4;
  6329. }
  6330.  else if(((C)->_cc/*24*/)==('\54')){
  6331. /*[IRF3.6wcp*/{T51* C1=C;
  6332. T0* b1=((T0*)ms51_48195);
  6333. r51warning(r51current_position(C1),b1);
  6334. }/*]*/
  6335. C->_ok=r51skip1(C,'\54');
  6336. }
  6337. else{
  6338. r51fcp(C,((T0*)ms51_22423));
  6339. _state=4;
  6340. }
  6341. /*FI]*/
  6342. }
  6343.  else 
  6344. if((1==z1)){
  6345. /*[IF*/
  6346. if(r51a_keyword(C,((T0*)ms12_1764))){
  6347. /*[IF*/
  6348. if((_constant)!=((void*)(NULL))){
  6349. r217add_value(((T217*)_e_when),_constant);
  6350. }
  6351. /*FI]*/
  6352. /*[IRF3.3set_compound*/((((T217*)(((T217*)_e_when))))->_compound)=(r51a_compound1(C));
  6353. /*]*/
  6354. r216add_when(((T216*)a1),_e_when);
  6355. _state=4;
  6356. }
  6357.  else if(r51skip2(C,'\56','\56')){
  6358. _state=2;
  6359. }
  6360.  else if(r51skip1(C,'\54')){
  6361. r217add_value(((T217*)_e_when),_constant);
  6362. _constant=NULL;
  6363. _state=0;
  6364. }
  6365. else{
  6366. r51fcp(C,((T0*)ms51_22423));
  6367. _state=4;
  6368. }
  6369. /*FI]*/
  6370. }
  6371.  else 
  6372. if((2==z1)){
  6373. /*[IF*/
  6374. if(r51a_constant(C)){
  6375. r217add_slice(((T217*)_e_when),_constant,(C)->_last_expression/*97*/);
  6376. _constant=NULL;
  6377. _state=3;
  6378. }
  6379. else{
  6380. r51fcp(C,((T0*)ms51_22423));
  6381. _state=4;
  6382. }
  6383. /*FI]*/
  6384. }
  6385.  else{/*[IF*/
  6386. if(r51skip1(C,'\54')){
  6387. _state=0;
  6388. }
  6389.  else if(r51a_keyword(C,((T0*)ms12_1764))){
  6390. /*[IRF3.3set_compound*/((((T217*)(((T217*)_e_when))))->_compound)=(r51a_compound1(C));
  6391. /*]*/
  6392. r216add_when(((T216*)a1),_e_when);
  6393. _state=4;
  6394. }
  6395.  else if(r51a_constant(C)){
  6396. _constant=(C)->_last_expression/*97*/;
  6397. r51warning(r92start_position((T92*)(oBC51tmp_name)),((T0*)ms51_9410));
  6398. _state=1;
  6399. }
  6400. else{
  6401. r51fcp(C,((T0*)ms51_22423));
  6402. _state=4;
  6403. }
  6404. /*FI]*/
  6405. }}
  6406. }
  6407. }
  6408. /*FI]*/
  6409. return R;
  6410. }
  6411.  
  6412.  
  6413. T6 r51a_argument(T51* C){
  6414. T6 R=0;
  6415. T2 _rank=0;
  6416. /*[IF*/
  6417. if(((C)->_arguments/*49*/)!=((void*)(NULL))){
  6418. _rank=r171rank_of((T171*)((C)->_arguments/*49*/),r92to_string((T92*)(oBC51tmp_name)));
  6419. /*[IF*/
  6420. if((_rank)>(0)){
  6421. C->_last_expression=r92to_argument_name2((T92*)(oBC51tmp_name),(C)->_arguments/*49*/,_rank);
  6422. R=1;
  6423. }
  6424. /*FI]*/
  6425. }
  6426. /*FI]*/
  6427. return R;
  6428. }
  6429. /*No:EIFFEL_PARSER.us_character*/
  6430. /*No:EIFFEL_PARSER.end_of_text*/
  6431.  
  6432.